我是靠谱客的博主 能干钢笔,这篇文章主要介绍gsoap工具生成soap.h.cpp文件遇到的问题,现在分享给大家,希望可以做个参考。

使用gsoap工具生成soap.h.cpp文件遇到的问题

 

 

 if (soap_begin_recv(soap)
  || soap_envelope_begin_in(soap)
  || soap_recv_header(soap)
  || soap_body_begin_in(soap))
  return soap_closesock(soap);
 // 更改, 第三个参数不为空 . 这个soap_get 就会返回 soaperror = SOAP_FAULT的错误    (SOAP_MESSAGE(fdebug, "Received SOAP Fault code %sn", s));)
 // 更改, 第三个参数不为空
 ns1__GetXYResponse->soap_get(soap, "ns1:GetXYResponse", "ns1:GetXYResponse");
 if (soap->error)
 { if (soap->error == SOAP_TAG_MISMATCH && soap->level == 2)
   return soap_recv_fault(soap,0);
  return soap_closesock(soap);
 }

mssoaptool监控信息 内容

发送soap内容

 

 

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:ns4="http://schemas.datacontract.org/2004/07/PGis110.Helper" xmlns:ns1="http://tempuri.org/" xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:wsc="http://schemas.xmlsoap.org/ws/2005/02/sc" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:chan="http://schemas.microsoft.com/ws/2005/02/duplex" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"><SOAP-ENV:Body><ns1:GetXY><ns1:phone>15131040117</ns1:phone></ns1:GetXY></SOAP-ENV:Body></SOAP-ENV:Envelope>

 

 

返回内容

 

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://www.w3.org/2005/08/addressing/fault</a:Action></s:Header><s:Body><s:Fault><s:Code><s:Value>s:Sender</s:Value><s:Subcode><s:Value>a:ActionMismatch</s:Value></s:Subcode></s:Code><s:Reason><s:Text xml:lang="zh-CN">The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/IMobileService/GetXY'. </s:Text></s:Reason><s:Detail><a:ProblemHeaderQName>a:Action</a:ProblemHeaderQName></s:Detail></s:Fault></s:Body></s:Envelope>


 

 

主要是这个错误

The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/IMobileService/GetXY'

查了下 “I think you have problem with SOAP version. Check out what SOAP version uses WCF and”

Ok problem solved. Changed binding to basicHttp and it worked with PHP.

 

这个webs是wcf 写的 使用的是soap 1.2协议发布的 , 而gsoap生成这堆cpp h时是按soap1.1生成的,

网上说的是 bind 的类型不一致导致的. webs 中使用的是 wsHttp 而c端使用的是 basicHttp

我猜....  这个问题我没有找到解决防范, 由于项目时间紧我只好找其他

解决方法.......

最后

以上就是能干钢笔最近收集整理的关于gsoap工具生成soap.h.cpp文件遇到的问题的全部内容,更多相关gsoap工具生成soap.h.cpp文件遇到内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(139)

评论列表共有 0 条评论

立即
投稿
返回
顶部