如何向SOAP服务提交JSON数据?解决Runtime Type Mismatch错误
解决SOAP服务接收JSON报错的问题
直接发送JSON到SOAP服务会报Runtime Type Mismatch,本质原因是SOAP服务基于XML格式处理请求,不直接支持JSON输入。按以下步骤操作即可解决:
- 先拿到目标SOAP服务的WSDL文档,定位你要调用的接口方法,确认请求的XML结构(包括命名空间、参数标签等)。
- 将你的JSON数据转换成符合要求的XML请求体,举个典型的登录接口XML示例:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:auth="http://your-service-namespace.com"> <soapenv:Header/> <soapenv:Body> <auth:Login> <auth:username>blabla</auth:username> <auth:password>blabla</auth:password> </auth:Login> </soapenv:Body> </soapenv:Envelope>
把JSON里的username和password对应填入XML的参数标签中,注意要和WSDL定义的标签名、命名空间完全一致。
- 设置请求头:必须将
Content-Type设为text/xml或application/soap+xml(具体以服务端要求为准)。 - 用HTTP POST方法,把构建好的XML请求体发送到SOAP服务的端点URL。
如果不确定XML结构,可以用SOAPUI工具导入WSDL自动生成请求模板,再替换参数即可。
内容的提问来源于stack exchange,提问作者imranjust14
相关产品推荐
相关产品推荐

