WebService的 http/soap调用 完整过程

本文详细介绍了WebService的HTTP和SOAP调用过程,包括HTTP调用接口的注意事项,如设置正确的参数名和Content-Type。此外,解释了SOAP 1.1和1.2的区别,如Content-Type、SOAPAction头和命名空间的不同。同时指出,WebService调用仅支持C#,与Java对接时存在兼容问题。
摘要由CSDN通过智能技术生成

调用

测试接口为 http://***/webservice/interOuterService/pushData

1.Http 调用接口(如果接口参数是复杂对象,该方法失效 例如数组)

    HttpClient client = new HttpClient();
    var jsonCon = "{receiveModelXml:\"" + xmlResult + "\"}";
    HttpContent httpContent = new StringContent(jsonCon, Encoding.UTF8, "application/json");
    var url = "http://***/webservice/interOuterService/pushData ";
    var Res = client.PostAsync(url, httpContent).Result;
    var sdssdasdaas = Res.Content.ReadAsStringAsync();

注意事项

1.参数中一定要写好入参名称,否则报错 参数未找到
2.如果接口需要的是xml文件。可以将xml转成string 然后以json传输(格式转换见)
3.如果ContentType采用 "application/x-www-form-urlencoded"形式的http请求(如果没问题 不需要修改)
需要对web.config文件进行修改,在<system.web>块内修改:
在这里插入图片描述

如果是运行时版本4.0, 添加下面一段内容即可(亲测)
<httpRuntime requestValidationMode="2.0"/>
如果仍有问题,继续修改
<webServices>
<protocols>
<add name="HttpPost"/>
<add name="HttpGet"/>
</protocols>
</webServices>

2.soap1.2协议的http请求(必须使用该方法的情况:接口需要传对象而不是字符串)

var param4 = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:tem=\"http://tempuri.org/\"><soap:Header/><soap:Body><tem:SyncIncrementOrgToI8Async><tem:models><tem:OrgModel><tem:OCode>qw</tem:OCode><tem:OCBo>21111Z</tem:OCBo><tem:OName>13</tem:OName><tem:OrgType>Y</tem:OrgType><tem:CBoo></tem:CBoo><tem:Bopomofo></tem:Bopomofo><tem:CodeValue></tem:CodeValue><tem:OMemo>13</tem:OMemo><tem:I
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值