我可以转换从 WSDL 自动创建的 SoapHttpClientProtocol 类以使用 HTTPS 协议而不是 HTTP 吗?(如果,如何?)
只需将 Web 服务的 URL 访问权限从 更改http://
为 会https://
导致异常:
由于意外的数据包格式,握手失败
我的问题是,这个类非常大(想想 10k SLOC),我不确定我需要如何在这里更改协议。
我可以转换从 WSDL 自动创建的 SoapHttpClientProtocol 类以使用 HTTPS 协议而不是 HTTP 吗?(如果,如何?)
只需将 Web 服务的 URL 访问权限从 更改http://
为 会https://
导致异常:
由于意外的数据包格式,握手失败
我的问题是,这个类非常大(想想 10k SLOC),我不确定我需要如何在这里更改协议。
根据我从搜索新事物中可以得出的结论,您应该可以通过添加行来做到这一点
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 的证书,您可能需要覆盖默认证书验证器。