C# C“HttpWebRequest报告”;407需要代理身份验证";IE浏览器关闭时出错
背景 目前,我们有一个场景,代理设置通过wpad文件分发。网络中的每台计算机应在Internet Explorer上设置以下配置: 在IE上配置此代理设置后,我可以通过HTTP导航,而不会出现任何问题。在IE中打开网页之前,我从未被要求提供任何用户名/密码凭证来通过代理 问题 在这里,我们有一个应用程序,它运行以下C#代码来进行数据流下载:C# C“HttpWebRequest报告”;407需要代理身份验证";IE浏览器关闭时出错,c#,proxy,httpwebrequest,credentials,C#,Proxy,Httpwebrequest,Credentials,背景 目前,我们有一个场景,代理设置通过wpad文件分发。网络中的每台计算机应在Internet Explorer上设置以下配置: 在IE上配置此代理设置后,我可以通过HTTP导航,而不会出现任何问题。在IE中打开网页之前,我从未被要求提供任何用户名/密码凭证来通过代理 问题 在这里,我们有一个应用程序,它运行以下C#代码来进行数据流下载: 公共流PostStream(字符串api、字符串数据) { var payload=Encoding.UTF8.GetBytes(数据); var htt
公共流PostStream(字符串api、字符串数据)
{
var payload=Encoding.UTF8.GetBytes(数据);
var httpWebRequest=(httpWebRequest)WebRequest.Create(新Uri(api));
httpWebRequest.Method=“POST”;
httpWebRequest.ContentType=“application/json;charset=UTF-8”;
httpWebRequest.ContentLength=有效负载.Length;
httpWebRequest.AllowReadStreamBuffering=false;
httpWebRequest.AutomaticDecompression=DecompressionMethods.GZip | DecompressionMethods.Deflate;
httpWebRequest.Proxy.Credentials=CredentialCache.DefaultCredentials;
httpWebRequest.UseDefaultCredentials=true;
使用(var stream=httpWebRequest.GetRequestStream())
{
流写入(有效负载,0,有效负载长度);
}
var httpWebResponse=httpWebRequest.GetResponse();
返回httpWebResponse.GetResponseStream();
}
好的,httpWebRequest
应该能够自动创建一个默认的代理
实例,该实例继承IE上的代理设置,(我调试了代码,我可以看到自动配置脚本已加载/使用在代理实例中),有趣的是:
- 如果我在我的计算机上保持Internet Explorer打开,然后运行我的应用程序,一切正常
- 但如果我关闭Internet Explorer然后运行我的应用程序,它会抛出“需要407代理身份验证”异常