php curl对接webService Soap遇到的问题

对接ems的时候遇到,因为没接触过,一脸懵逼......
先贴代码

        $dir = getcwd();
        $pem = $dir.'/client.pem';

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $this->serverEMSURL);

        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);  //是否验证证书
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);  //是否验证host
        curl_setopt($ch,CURLOPT_SSLCERT ,$pem);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);
        curl_setopt($ch, CURLOPT_HEADER, 0);

        $res = curl_exec($ch);

        $sn = str_replace('GBK','UTF8',$res);
        
        $xml = new \DOMDocument();
        $xml->preserveWhiteSpace=false;
        $xml->loadXML($sn);

        curl_close($ch);

主要就是这么发送请求,.

    private function getLogistice_Xml($sn,$order = '')
    {

$xmlstr = <<<XML
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://web.webservice.busines.routdata.com">
        <soapenv:Body>
        <web:call>
        <web:in0><?xml version="1.0" encoding="utf-8"?><MSG><HEAD><SYS_CODE>1047</SYS_CODE><USERNAME>参数</USERNAME><PASSWORD>参数</PASSWORD><FUNC_CODE>参数</FUNC_CODE></HEAD><BODY datasets="参数"><DATASET ds_id="参数" rows="参数" cols="参数"><ROW><COL col_name="参数">参数</COL></ROW></DATASET></BODY></MSG></web:in0>
        </web:call>
        </soapenv:Body>
        </soapenv:Envelope>
XML;

        return $xmlstr;    
    }

以上这个xml的结构是用soapUI这个软件生成的,
生成出来是这个样子的,问号里面填要发送的参数

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://web.webservice.busines.routdata.com">
        <soapenv:Body>
        <web:call>
        <web:in0>?</web:in0>
        </web:call>
        </soapenv:Body>
        </soapenv:Envelope>

当时遇到的主要问题是,能连接上wsdl的webService,但是不知道怎么调用他的call方法,后面发现soap找了好久找到soapUI这个软件...然后找到一篇文章说要把尖括号转码...

SoapUI使用方法:↓
http://jingyan.baidu.com/article/574c521901e8966c8d9dc1bb.html?st=5&net_type=1&bd_page_type=1&os=1&rst=&word=ghost%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传Web...
    含辞未吐气若幽兰阅读 19,106评论 3 63
  • 概览 CXF frontends 是一组编程的API,被用来开发和发布webservice。CXF支持两种类型的f...
    JohnShen阅读 5,221评论 2 2
  • 因为工作中使用了SOAP进行两个系统的接口调用,所以私下学习一下两种实现,粗略记录于此。本文侧重于实际实现操作,而...
    峡客阅读 9,923评论 0 4
  • 常用注解: WebService 是一种跨编程语言和跨操作系统平台的远程调用技术。 建议:一般的应用,Ajax跨域...
    c5fc16271aee阅读 4,106评论 0 2
  • 文/孤鸟差鱼 秋夜雨寒起 喝酒 吟风 哼曲 不要爱情
    孤鸟差鱼阅读 1,486评论 0 1

友情链接更多精彩内容