gpt4 book ai didi

c# - 如何为服务引用指定 Web 代理?

转载 作者:太空狗 更新时间:2023-10-29 20:42:13 26 4
gpt4 key购买 nike

我在 http://chennaiemergency.co.in/sree/s2.php?wsdl 找到了一个简单的在线网络服务我可以使用 2 个浮点值 (1,1) 通过 SOAP UI 调用它,并在 1-2 秒内轻松获得响应。现在,在一个新的 visual studio 2010 控制台应用程序项目中,我执行“添加服务引用”并提供 WSDL。然后在生成的客户端中我这样做:

    ServiceReference1.ChnEmergencyPortTypeClient client = new ChnEmergencyPortTypeClient();
string hospital = client.hospital(1, 1);

我在 1 分钟后收到超时异常。我肯定禁用了防火墙。我正在使用 Windows7x64我正在通过代理服务器使用互联网。

我通过添加网络引用尝试了同样的事情,但我遇到了同样的超时错误。

现在在 web 引用实现中,我做了以下几处修改:

            WebProxy webProxy = new WebProxy("<my proxy server name>", <port>);

ChnEmergency client = new ChnEmergency();
client.Timeout = 200000;
client.Proxy = webProxy;
string hospital = client.hospital(1, 1);

但我仍然超时。有什么我遗漏的建议吗?

我使用不涉及代理服务器的直接(通过电话)内部连接进行了快速测试。而且我能够成功访问。这表明我提供 webproxy 的方式有问题。 IE 互联网设置表明我的代理设置是:

地址:a.b.c.com端口:80

所以我正在构建一个这样的网络代理

WebProxy webProxy = new WebProxy("a.b.c.com", 80);

现在我不知道某处是否涉及“安全 http”概念,也不知道如何弄清楚。但是用 http://a.b.c.com 在浏览器上快速尝试一下和 https://a.b.c.com产生了不同的结果。在“http”的情况下,我得到了那个无效的 url。在“https”情况下,错误是“Google Chrome 连接到 a.b.c.com 的尝试被拒绝。该网站可能已关闭,或者您的网络可能未正确配置”

如果我将 webproxy 与 https 一起使用,它会显示“服务点管理器未针对 https 配置”

我使用 fiddler 查看事件,我看到请求确​​实出现在 fiddler 中。但是没有回应。这是否一定意味着请求正在通过?或者请求是否会在较低级别被阻止(即在它通过 fiddler 之后)。

最佳答案

我尝试快速制作一个小型 Web 项目,它似乎工作正常,但您添加 Web 服务的方式返回的 XML 如下所示:

<?xml version="1.0" encoding="ISO-8859-1"?>    
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:hospitalResponse xmlns:ns1="urn:ChnEmergency">
<return xsi:type="xsd:string">12.944672~80.134578~Chrompet GH~Government~GST Road, Chrompet~Chrompet~600036</return>
</ns1:hospitalResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

如果您的 Proxy 需要密码,您可以尝试:

var proxy = new WebProxy("proxy.foo.com", 8080);
proxy.Credentials = new NetworkCredential("user", "pass");
WebRequest.DefaultWebProxy = proxy;

关于c# - 如何为服务引用指定 Web 代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941645/

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