gpt4 book ai didi

c# - 通过 WPAD 中定义的代理与 Web 服务通信

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:12 26 4
gpt4 key购买 nike

我正在开发一个需要与某些网络服务通信的 Windows WPF 应用程序。我现在需要实现对坐在代理后面的某些用户的支持。在一种特殊情况下,用户通过 Internet Explorer 设置使用 WPAD 自动获取代理设置:

enter image description here

我已经阅读了大量关于代理的文章,但我就是无法让它工作。这是我尝试过的:

WebRequest request = WebRequest.Create("http://www.google.com");
request.Proxy = WebRequest.GetSystemWebProxy();
var response = (HttpWebResponse)request.GetResponse();

WebRequest.GetSystemWebProxy() 的文档说:

"Returns a proxy configured with the Internet Explorer settings of the currently impersonated user."

它似乎是从 Internet Explorer 获取设置。当我调试和检查代理时,我发现它已检测到 WPAD 文件:

enter image description here

但是好像不管怎样都行不通。调用 GetResponse() 时失败并显示以下异常消息:

"A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond"

据我所知,我的 app.config 文件中不需要任何内容​​。那我错过了什么?

最佳答案

您需要在 app.config 文件中设置代理元素:

<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true" >
<proxy autoDetect="true" scriptLocation="http:/wpad.dat"/>
</defaultProxy>
</system.net>

https://msdn.microsoft.com/en-us/library/sa91de1e(v=vs.110).aspx

另一种方法,尽管它被认为是遗留的:

WebProxy proxyObject = new WebProxy("http://proxyserver:80/",true);
WebRequest request = WebRequest.Create("http://www.google.com");
request.Proxy = proxyObject;

关于c# - 通过 WPAD 中定义的代理与 Web 服务通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32988284/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com