Thelvan Geschrieben 14. April 2011 Teilen Geschrieben 14. April 2011 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fraggla Geschrieben 14. April 2011 Teilen Geschrieben 14. April 2011 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 14. April 2011 Teilen Geschrieben 14. April 2011 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Thelvan Geschrieben 14. April 2011 Autor Teilen Geschrieben 14. April 2011 Super danke, Credentials am Proxy setzen hat mit deinem Code funktioniert! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.