HTTP webrequest

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Nils_Kr.

    HTTP webrequest

    Hi,
    ich hab folgenden Codeschnipsel:

    VB.NET-Quellcode

    1. try
    2. Dim request As HttpWebRequest, response As HttpWebResponse = Nothing, _
    3. Url as string = "http://..."
    4. request = CType(WebRequest.Create(url), HttpWebRequest
    5. response = CType(request.GetResponse, HttpWebResponse)
    6. catch ex as webException
    7. end try


    Das Problem ist, dass ich bis jetzt keine Seite erfolgreich prüfen konnte. Ich bekomme entweder den Fehler 407 "Proxy authentication required (Proxy-Authentifizierung erforderlich)"
    oder aber 401 "Unauthorized (Nicht autorisiert)". Über den Explorer ist der Link allerdings problemlos aufrufbar.

    Hat jemand eine Idee, wieso ich keine korrekte Bestätigung bekomme?
    Option strict = on

    If it's stupid and it works it ain't stupid.
    Guten Morgen ;)

    Schau Dir mal dieses TUT an : https://www.vb-paradise.de/index.php/Thread/25722-HttpWebRequest-Tutorial-F%C3%BCr-anf%C3%A4nger/

    Hoffe es hilft Dir :D

    MFG Netlogger
    :D Ein Programm sollte nicht nur Hand und Fuß, sondern auch Herz und Hirn haben. (Michael Anton) :D

    MFG Jörg ;)

    Muss jeder vermeintliche Programmierer ne Signatur haben ??
    Das Tut kenne ich, wüsste aber nicht, wie es mir bei meinem Problem weiterhelfen kann. Ich gehe davon aus, dass die Problematik mit unserem Firmennetzwerk zusammenhängt,
    es wundert mich nur, dass von meinem Account das Internet ohne weitere Anmeldungen funktioniert, bei der Abfrage dann aber Zugangsdaten fehlen sollen.

    E: Ich hab morgen eh einen Termin mit der IT, da werd ich mal fragen, wie genau sich ins Internet eingeloggt wird.
    Option strict = on

    If it's stupid and it works it ain't stupid.
    so,
    die Internetverbindung wird tatsächlich über einen Proxyserver hergestellt. Von der Form her so:
    IP+Port: DE12345:1234 Username: user-xzy Passwort: 43210

    Der IE hat in den Einstellungen eingetragen, dass der Systemstandart verwendet wird und die Daten sind laut IT irgendwo in der Registry hinterlegt.
    Hat jemand eine Idee, ich diesen "Systemstandard" in meinen WebRequest integrieren kann?
    Option strict = on

    If it's stupid and it works it ain't stupid.

    Nils_Kr schrieb:

    irgendwo in der Registry hinterlegt.
    Dann musst Du diese Daten von irgendwo aus der Registry auslesen.
    Dein nächster Post sollte lauten: Gefunden und fertig.
    oder
    Gefunden, wie bekomme ich die Daten da raus?
    Ansonsten musst Du Dich anderweitig um diese Daten kümmern.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    normalerweise findet man diese Einstellungen unter "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
    Dort gibt es die Schlüssel:

    "MigrateProxy"=dword:00000001
    "ProxyEnable"=dword:00000001
    "ProxyHttp1.1"=dword:00000000
    "ProxyServer"="http://ProxyServername:80"
    "ProxyOverride"="<local>"

    Das ist alles was du brauchst, Schlüssel auslesen ist dann nicht das große Ding wenn man weiß wie man MSDN benutzt ;)
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    Den Proxy im WebRequest mitzugeben ist eines.
    msdn.microsoft.com/en-us/libra…uest.proxy(v=vs.110).aspx

    Die automatische Authentifizierung dürfte unter Umständen ein echtes Problem sein.
    Username/Passwort dafür wird vermutlich nicht in der Registry hinterlegt sein, sondern die Authentifizierung am Proxy erfolgt per Challenge/Response (mittels Active Directory).
    Das kann als Browser imho nur der IE.

    Bei HttpWebRequest muss das Passwort in diesem Fall abgefragt werden.
    Zumindest wüsste ich keinen anderen Weg.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --