因工作需要,跟JAVA发布的WS进行了对接。中途遇到许多问题,直到问题解决,才知道自己闹了多大的笑话。写个文章警醒自己。
- 因查看WSDL发现返回值是一个类(引用类型) 将WSDL生成本地代理类
- WSDL文档解析;
- 将WSDL生成代理类;
- 添加代理类到本地项目
- 此处我这里的代理中接口名称如下:
public WsResultData FounderRequestData( string in0, string in1, string in2, string in3) { object[] results = this.Invoke("FounderRequestData", new object[] { in0, in1, in2, in3}); return ((WsResultData)(results[0])); }
- 返回的WsReusultData的部分定义如下:
public partial class WsResultData{ private string respondeDataField; private System.Nullable<int> resultField; private bool resultFieldSpecified; public string respondeData { get { return this.respondeDataField; } set { this.respondeDataField = value; } } public System.Nullable<int> result { get { return this.resultField; } set { this.resultField = value; } } public bool resultSpecified { get { return this.resultFieldSpecified; } set { this.resultFieldSpecified = value; } } }
- 因为返回的对象为引用类型,且回传中包含string 字符串也为引用类型。这个时候我们需要直接获取对象的值如:
.FounderRequestData(null, null, null, outXml).respondeData。这也就是常说为何从JAVA WS中获取到NULL的原因引用类型与值类型的区别。
最后也可通过WebRequeset/HttpRwquest 等方式来进行通信。因时间关系未作此验证。
posted @
2020-05-22 15:52
すのはら荘の雪
阅读(
376)
评论()
收藏
举报