【问题标题】:HttpWebRequest doesn't seem to "get" my proxy credentialsHttpWebRequest 似乎没有“获取”我的代理凭据
【发布时间】:2013-05-07 11:34:30
【问题描述】:

我正在尝试连接一个基于 REST 的 Web 服务,虽然它在我的本地开发机器上运行良好,但我很难让它在我的客户端测试系统上运行,该系统位于 Web 代理后面。

我这里有这个代码sn-p:

HttpWebRequest request = WebRequest.Create(targetUrl) as HttpWebRequest;

if (request == null)
   return;

request.Method = "GET";
request.Accept = "application/json";

request.Credentials = new NetworkCredential("myusername", "mytopsecretpassword");

WebProxy webProxy = new WebProxy("myproxy.net", 8080)
         {
             Credentials = new NetworkCredential("myusername", "mytopsecretpassword"),
             UseDefaultCredentials = false
         };

request.Proxy = webProxy;

但是当我尝试执行这个调用并得到这样的响应时:

HttpWebResponse response = request.GetResponse() as HttpWebResponse;

我不断收到错误:

System.Net.WebException
远程服务器返回错误:(407) 需要代理身份验证。

WTF ?!?!我正在设置代理并提供代理凭据....我还能做什么?

【问题讨论】:

  • 先检查明显:您确定用户名和密码正确吗?
  • @dtb:是的——当我在 MS IE 中登录管理 GUI 时,它们工作得很好。另外:在我的本地开发机器上,没有代理,这些凭据可以正常工作。
  • 代理是否有可以查看的错误日志? (你的代码没有明显错误,所以远程调试你的程序相当困难。)
  • @dtb:我不知道——这个远程系统(从代理开始)超出了我的能力范围。如果有代理日志,我不会知道它,我也无权访问它....
  • 您是否尝试过使用 Fiddler/Wireshark 查看这两个 HTTP 请求并检查 MSIE 和 HttpWebRequest 之间是否存在差异?

标签: c# .net-4.0 httpwebrequest http-proxy


【解决方案1】:

尝试将域添加到代理凭据。

我还尝试设置 UseDefaultCredentials = false 您设置新凭据之前。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 2021-01-03
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    相关资源
    最近更新 更多