Web Request error 407 Proxy Authentication Require

2019-02-11 09:39发布

问题:

Trying to GetResponse From a web site;

using System.Text;
using System.Net;
using System.IO;

namespace DutyPharmacy751013
{
class Program
{
    static void Main(string[] args)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com/");

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

        Encoding encoding = Encoding.GetEncoding(response.CharacterSet);

        Stream stream = response.GetResponseStream();
        StreamReader reader = new StreamReader(stream, encoding);
        string responseText= reader.ReadToEnd();
    }
}
}

This code is working on win7 and LAN and on win8 and any of wireless connection but doesn't work on win8 and LAN error: 407 Proxy authentication required. Is there any solution. Thanks.

回答1:

try with adding proxy credentials to request and also give network credentials

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com/");
request.Credentials = new NetworkCredential("username", "pw");

WebProxy webProxy = new WebProxy("http://myproxy.net:8080/", true)
         {
             Credentials = new NetworkCredential("username", "pw"),
             UseDefaultCredentials = false
         };

request.Proxy = webProxy;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

//rest of the code...

Edit

For requests that you create, you can disable automatic proxy detection at the request level by using a null Proxy with your request

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com/");
request.Proxy = null;
//rest of the code


回答2:

WebProxy webProxy = new WebProxy("http://myproxy.net:8080/", true)
     {
         UseDefaultCredentials = false,
         Credentials = new NetworkCredential("username", "pw")

     };

Please note Correct sequence to set property {other wise failed for me}