c#与java webservice调用问题

问题描述一:

c#调用java写的websrevice,对方接收到的参数与实际传的值不一致,返回的时候值也获取不到,为null。

该参数为普通的string类型,因此不存在类型转换的问题。

处理:

使用fiddler抓包分析,发现发送和接收的数据都正常,因此定位为参数及返回值解析的问题。

我们来看看c#自动生成的代理类,每个方法上面都设置了哪些属性:

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("urn:TestMethod", RequestNamespace="http://MbmsService.com/", ResponseNamespace="http://test.com/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("return", IsNullable=true)]

 

注意 SoapBindingUse.Literal 及 SoapParameterStyle.Wrapped。

改为 SoapBindingUse.Encoded 及 SoapParameterStyle.Bare即可。

 

posted @ 2016-05-30 12:43  darkblue  阅读(482)  评论(0编辑  收藏  举报