gpt4 book ai didi

php - 在 PHP 中从 cURL Soap 迁移到 Soap 客户端

转载 作者:行者123 更新时间:2023-12-04 04:39:43 26 4
gpt4 key购买 nike

我正在尝试使用 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 或复杂数组构建它的帮助都可以节省我的时间。据我所知,我无法通过 header 发送身份验证,所以这就是我开始陷入困境的地方。

最后,在我的 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);

我得到的错误是: fatal error : fatal error :未捕获的 SoapFault 异常:[a:InternalServiceFault] 对象引用未设置为对象的实例。在/var/www/cron-gg-update.php:35 堆栈跟踪:#0 [内部函数]:SoapClient->__call('GMData...', Array) #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”对象。它只需要一个更好的结构化数组。在这篇文章中找到了帮助 "Object reference not set to an instance of an object" error connecting to SOAP server from PHP

关于php - 在 PHP 中从 cURL Soap 迁移到 Soap 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19074121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com