在PHP中从cURL Soap迁移到Soap Client

查尔斯

我正在尝试使用PHP Soap,但确实很挣扎。我可以通过cURL构建和发送以下内容,但不知道如何使用SoapClient构建。

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:auc="http://xxxxxxx.com/APOnline" xmlns:get="http://xxxxxxx.com/APOnline/GMData">
 <soapenv:Header/>
 <soapenv:Body>
  <auc:GMData>
     <!--Optional:-->
     <auc:args>
        <get:Authentication>
           <auc:PartnerId>XXXXXXX</auc:PartnerId>
           <auc:UserName>XXXXXXX</auc:UserName>
           <auc:Password>XXXXXXX</auc:Password>
        </get:Authentication>
        <get:ProjectIdentification>
           <!--Optional:-->
           <auc:Organization></auc:Organization>
           <!--Optional:-->
           <auc:Project></auc:Project>
           <!--Optional:-->
           <auc:ProjectId>1111111</auc:ProjectId>
        </get:ProjectIdentification>
        <get:Timestamp>0</get:Timestamp>
     </auc:args>
  </auc:GMData>
 </soapenv:Body>
 </soapenv:Envelope>

我需要将其作为数组取回,以便可以遍历数据。关于如何使用SoapVars或仅使用复杂数组构建此库的任何帮助都可以为我节省时间。据我所知,我无法通过标头发送身份验证,因此我开始陷入困境。

最后,在我的cURL中,传递以下标头:

 $headers = array(
                "Content-type: text/xml;charset=\"utf-8\"",
                "Accept: text/xml",
                "Cache-Control: no-cache",
                "Pragma: no-cache",
                "SOAPAction: http://xxxxxxxx.com/APOnline/GMData", 
                "Content-length: ".strlen($postXML),
            );

我试过了:

 $soapURL = "https://xxxxxx.com/Webservices/DataExchange?wsdl" ;
 $soapParameters = Array('PartnerID' => "xxxx", 'UserName' => "xxxx", 'Password' => "xxxx") ;
 $soapFunction = "GMData" ;

 $soapClient = new SoapClient($soapURL);
 $soapResult = $soapClient->GMData($soapParameters);
 var_dump($soapResult);

我得到的错误是:致命错误:致命错误:未捕获的SoapFault异常:[a:InternalServiceFault]对象引用未设置为对象的实例。在/var/www/cron-gg-update.php:35中的堆栈跟踪:#0 [内部函数]:SoapClient-> __ call('GMData ...',数组)#1 / var / www / cron-gg- update.php(35):SoapClient-> GMData(Array)#2 {main}放在第35行的/var/www/cron-gg-update.php中

有人有我可以尝试的示例代码吗?我在努力构建数组(我认为)。

查尔斯

终于整理出来了。我只需要继续尝试。

 $soapURL = "https://xxxxx.com/Webservices/DataExchange?wsdl" ;
 $sc = new SoapClient($soapURL);
 $Authentication = array("PartnerId"=>"xxxx","UserName"=>"xxxx","Password"=>"xxxx");
 $ProjectIdentification  = array("ProjectId"=>INT);
 $res = $sc->GMData(array("args"=>array("Authentication"=>$Authentication,"ProjectIdentification"=>$ProjectIdentification)));

我缺少“ args”对象。只是采用了更好的结构化数组。从PHP连接到SOAP服务器时,在此文章“对象引用未设置为对象的实例”中找到帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP中的Soap Client

来自分类Dev

没有Soap Client的PHP Soap Server

来自分类Dev

如何在Soap Client输出PHP中仅获取XML

来自分类Dev

关于在PHP中扩展核心类(Soap Client示例)

来自分类Dev

迁移到 CXF 3.2.7 -> 如何解决 SOAP RQ 处理过程中与密码相关的安全错误?

来自分类Dev

在Jax-WS Client中解析Soap日期

来自分类Dev

PHP curl Soap请求错误

来自分类Dev

使用 Curl PHP 的 Soap 请求

来自分类Dev

PHP SOAP-Client在30 MB以上的响应中返回CGI-Error

来自分类Dev

PHP和SOAP-Client Call方法中的问题二参数一ArrayMultiDimension

来自分类Dev

在CURL Soap PHP中没有得到正确的响应

来自分类Dev

google-php-api-client从本地主机迁移到远程

来自分类Dev

使用CURL的SOAP API

来自分类Dev

从perl迁移到php

来自分类Dev

SoapClient / Zend_Soap_Client超时

来自分类Dev

Node.js SOAP client parameter formatting

来自分类Dev

SOAP中的PHP纯XML

来自分类Dev

SOAP中的PHP纯XML

来自分类Dev

从PHP 5.3迁移到5.6时出现curl错误411

来自分类Dev

JAVA与SAS中的PROC SOAP的SOAP请求

来自分类Dev

PHP SOAP请求问题

来自分类Dev

SOAP WSDL php请求

来自分类Dev

PHP XML Soap请求

来自分类Dev

PHP SOAP shippinglabelservice

来自分类Dev

PHP SOAP 响应

来自分类Dev

PHP xPath 解析 SOAP

来自分类Dev

使用 cURL 的 Sabre SOAP API

来自分类Dev

如何使用php curl发送XML soap请求

来自分类Dev

PHP7 cURL 和 SOAP 请求 SSL 失败