我在与Java WS对话时遇到了问题。我使用“WSHTTPBinding”绑定客户端证书进行身份验证,消息编码设置为“text”,.NET framework为4.0。服务器端是Java,我无法控制它。连接是通过Fiddler代理的(这就是我在网上看到请求的方式,比跟踪“System.NET”更加用户友好)。
我得到的例外情况如下:
服务器接受请求的“text”和“mtom”消息编码,响应总是相同的。这是我从服务器得到的原始响应:
HTTP/1.1 200 OK
X-Backside-Transport: OK OK
Connection: Keep-Alive
X-Powered-By: Servlet/3.0
SOAPAction: ""
Content-Type: application/xop+xml; type="application/soap+xml"
Content-Language: en-US
Date: Thu, 25 Jul 2013 13:05:09 GMT
Content-Length: 628
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope ... </env:Envelope>
从我阅读的所有文档中,返回的响应介于常规SOAP消息和MTOM消息之间。我这么说是因为我看到的每个示例都表明,MTOM请求和响应使用MIME作为通信的信封:常规SOAP消息被封装在XOP包中,然后这个XOP消息被MIME封装。甚至W3C建议也将MIME用于XOP包:W3C:XML-binary Optimized Packaging。本链接摘录:
Content-Type: Multipart/Related;boundary=...
如果我尝试使用工具“soapui”(用Java编写,可从“www.soapui.org”获得)调用web服务,服务调用将成功执行,响应将毫无问题地解析。
亚历克斯
我也在使用CXF,并且有一个C#客户端。尝试修改绑定设置,将TextMessageEncoding
替换为MtomMessageEncoding
。类似于这样:
<binding name="yourSoapBinding">
<mtomMessageEncoding messageVersion="Soap12"/>
<httpTransport />
</binding>
我在和Java WS对话时遇到了问题。我使用“wshttpbinding”绑定与客户端证书进行身份验证,消息编码设置为“text”,.NET framework为4.0。服务器端是Java,我无法控制它。连接是通过Fiddler代理的(这就是我在线上看到请求的方式,比跟踪“System.NET”用户友好得多)。 我得到的例外是: 在我阅读的所有文档中,返回的响应介于常规SOAP消息和MTOM消息之
现有的客户端很多,改变它们是不可行的。 我已经成功地创建了一个服务,它在大多数客户机上都有一个令人烦恼的异常。 因为旧的服务是SOAP1.1,所以我尝试使用一个basicHttpBinding,比如: 但是,我在这两个绑定中找不到一个设置组合,可以同时允许“application/xml”和“text/xml”的内容类型,并在标题中使用SOAP1.1样式的“soapaction”寻址。 我还尝试实
我正在尝试连接到一个描述为.wsdl文件的第三方服务。我不能提供整个文件,因为它太长了,但重要的部分是: 我的代码很简单: 供应商声称.wsdl是正确的,我相信他们。但是在我的两行代码中有什么可能是错误的呢? 链接到完整的.wsdl文件。
我试图使用独立的应用程序使用WCF web服务。我可以使用Internet Explorer查看此服务,也可以在Visual studio服务引用中查看。 这就是我得到的错误 如何更改它以使用正确的内容类型? 这是我的配置文件 这是堆栈
我创建了WCF服务,该服务将由需要接受内容类型application/xml;charset=UTF-8和SOAP1.1信封命名空间的第三方使用。该服务当前正在接受text/xml;charset=utf-8。不允许客户端更改内容类型。 我没有对web.config文件做任何更改,除了设置basicHttpBinding MaxReceivedMessageSize。