我可以自动转换从WSDL创建的SoapHttpClientProtocol类,而不是使用HTTPS协议吗? (以及如果,如何?)
只需将网络服务的网址访问权限从http://
更改为https://
,即可获得例外情况:
由于意外的数据包格式而导致握手失败
我的问题是,该课程非常庞大(想想10k SLOC),我不确定如何在这里更改协议。
答案 0 :(得分:1)
从搜索新内容中我可以看出,您应该可以通过添加行
来实现this.Url = "https://example.com:443/servlet_path";
this.Credentials = System.Net.CredentialCache.DefaultCredentials;
到派生的SoapHttpClientProtocol
类的构造函数和
[System.Web.Services.Protocols.SoapDocumentMethodAttribute(
"http://example.com/servlet_path",
RequestNamespace="http://example.com/",
ResponseNamespace="http://example.com/",
Use=System.Web.Services.Description.SoapBindingUse.Literal,
ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
到你的功能定义。在一个页面中,他们提到如果目标计算机没有来自执行机器接受的CA的证书,则可能需要覆盖默认证书验证程序。