Zum Inhalt springen

HttpWebRequest & Proxy


Empfohlene Beiträge

Geschrieben

Hallo,

ich beschäftige mich gerade das erste mal mit der HttpWebRequest Klasse.

Ich versuche eine einfache WebResponse zu bekommen.

Zuhause hat das einwandfrei funktioniert, allerdings habe ich auf der Arbeit das Problem, dass ich hinter einem Proxy sitze.

Mein Code sieht bisher so aus:

string uri = "http://www.google.de";

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);

req.UseDefaultCredentials = true;

req.Proxy = WebRequest.DefaultWebProxy;

HttpWebResponse response = (HttpWebResponse)req.GetResponse();

Bei DefaultWebProxy bzw. UseDefaultCredentials nimmt er ja die vom IE richtig?

Dort ist der Proxy eingetragen und kann dort ganz normal surfen.

Beim debuggen bekomme ich immer die Fehlermeldung:

Der Remoteserver hat einen Fehler zurückgegeben: (407) Proxyauthentifizierung erforderlich.
Geschrieben


public static string Aufruf(string Paras)

        {

            try

            {

                string testhttp2 = "http://google.de";


                // Create a request using a URL that can receive a post. 

                WebRequest request = WebRequest.Create(testhttp2);

                //RL-Proxy

                request.Proxy = new WebProxy("xxx.xxx.xxx.xxx:xxxx", true);

                request.Timeout = 100000;

                // Set the Method property of the request to POST.

                request.Method = "POST";

                // Create POST data and convert it to a byte array.

                string postData = Paras;

                byte[] byteArray = Encoding.UTF8.GetBytes(postData);

                // Set the ContentType property of the WebRequest.

                // request.ContentType = "application/x-www-form-urlencoded";

                // Set the ContentLength property of the WebRequest.

                request.ContentLength = byteArray.Length;

                // Get the request stream.

                Stream dataStream = request.GetRequestStream();

                // Write the data to the request stream.

                dataStream.Write(byteArray, 0, byteArray.Length);

                // Close the Stream object.

                dataStream.Close();

                // Get the response.

                WebResponse response = request.GetResponse();

                // Display the status.

                Console.WriteLine(((HttpWebResponse)response).StatusDescription);

                // Get the stream containing content returned by the server.

                dataStream = response.GetResponseStream();

                // Open the stream using a StreamReader for easy access.

                StreamReader reader = new StreamReader(dataStream);

                // Read the content.

                string responseFromServer = reader.ReadToEnd();

                // Display the content.

                Console.WriteLine(responseFromServer);

                // Clean up the streams.                    

                reader.Close();

                dataStream.Close();

                response.Close();

                return responseFromServer;

            }

            catch (WebException e)

            {

                Console.WriteLine("{0} Exception caught.", e);


                //   Console.WriteLine("Zeitueberschreitung der Anforderung!");

                return "Fehler!";

            }

Funktioniert bei mir ohne Probleme :)

Geschrieben

Du musst die Credentials am Proxy setzten.


WebRequest request = WebRequest.Create(uri.ToString());
request.Proxy.Credentials = CredentialCache.DefaultCredentials;
[/PHP]

Das funktioniert so natürlich nur wenn auch im System (IE) ein Proxy eingetragen ist und die Anmeldung automatisch funktioniert, sonst musst du die Anmeldedaten natürlich selber setzten.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...