当前位置: 首页 > 编程语言 > C#

从代理服务器后面调用Web服务Share

时间:2023-04-10 11:18:11 C#

从代理服务器后面调用Web服务我需要向我的应用程序(C#)添加一个函数,该函数将使用Web服务(XMLSOAP服务)。今天,此应用程序可以(并且主要)用于具有代理服务器的企业环境。我了解到SOAP服务使用的是HTTP协议,所以应该使用80端口,一般都是开放的。应用程序是否可以在没有任何特殊编码的情况下使用Web服务,或者我是否需要编写特殊代码来检测代理设置或您遇到的其他问题?编辑:Web服务是Internet上的公共服务。它不在同一个网络上。默认情况下,它将使用端口80,您无需进行任何进一步的编码。如果您真的需要通过某种代理,您需要做的就是将以下内容添加到您的web.config中:您也可以使用以下代码执行此操作:WebRequest.DefaultWebProxy=newWebProxy("http://yourproxyserver:80/”,真);您可以使用本地计算机的默认设置:System.Net.ServicePointManager.Expect100Continue=false;wsclient.Proxy=System.Net.HttpWebRequest.GetSystemWebProxy();wsclient.Proxy.Credentials=CredentialCache.DefaultCredentials;并在app.config中添加此配置:确定。所以我做了一些实验,结果证明我们确实需要编写一些代码来让它在代理服务器后面工作。(尽管我更喜欢更好的解决方案)所以它实际上会询问用户的代理服务器详细信息,然后像这样为代理服务器配置服务代理类:varnetworkCredentials=newNetworkCredential("username","password","domain");WebProxymyProxy=newWebProxy("WXYZ:NN",true){Credentials=networkCredentials};varservice=newiptocountry{Proxy=myProxy};字符串结果=service.FindCountryAsString("ABCD");我编写了一个使用IPToCountry免费网络服务的测试类。使用上面的代码,我可以成功使用Web服务。内置代码(WebClient、WCF、HttpWebRequest等)均使用WinHTTP配置获取代理配置。因此,您需要做的就是配置WinHTTP以了解代理!在XP中是:proxycfg-u从用户的IE代理设置(WinInet)导入设置。在Vista/etc上,您使用netshwinhttp(和一些子命令,如“import”)未经测试,但请尝试:netshwinhttpimportproxysource=ie之后,您的.NET代码应该全部通过可能已经配置为使用代理来使用IE等工作。如果您的Web服务与调用Web服务的客户端位于同一内部网络上,则它不应通过代理。只要您允许网络流量(端口80)通过,您就不需要做任何特殊的事情。从路由器/代理服务器的角度来看,Web服务调用与任何其他HTTP流量相同。以上就是C#学习教程:代理服务器背后调用Web服务分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: