gpt4 book ai didi

PHP SoapClient 无法处理消息,因为内容类型为 'text/xml;

转载 作者:行者123 更新时间:2023-12-05 01:44:37 26 4
gpt4 key购买 nike

我无法连接到网络服务并发送/接收数据

错误

HTTP,Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'.

代码

    $parameters = [        'UserName' => 12324,        'Password' => 432123,        'Bill_Id' => 153585611140,        'Payment_Id' => 8560103,    ];    $url="https://bill.samanepay.com/CheckBill/BillStateService.svc?wsdl";    $method = "VerifyBillPaymentWithAddData";    $client = new SoapClient($url);    try{        $info = $client->__call($method, array($parameters));    }catch (SoapFault $fault){          die($fault->faultcode.','.$fault->faultstring);    }

注意:Soap 版本 1,1 和其他解决 stackoverflow 中此错误的示例无效。

最佳答案

你可以试试

$url = "https://bill.samanepay.com/CheckBill/BillStateService.svc?wsdl";

try {
$client = new SoapClient($url, [
"soap_version" => SOAP_1_2, // SOAP_1_1
'cache_wsdl' => WSDL_CACHE_NONE, // WSDL_CACHE_MEMORY
'trace' => 1,
'exception' => 1,
'keep_alive' => false,
'connection_timeout' => 500000
]);
print_r($client->__getFunctions());
} catch (SOAPFault $f) {
error_log('ERROR => '.$f);
}

验证您的方法名称是否正确。

在那里你可以看到方法

VerifyBillPaymentWithAddDataResponse VerifyBillPaymentWithAddData(VerifyBillPaymentWithAddData $parameters)

下一步是检查类型 VerifyBillPaymentWithAddData 以及参数是否可以是数组。您也可以测试通过

调用该方法
$client->VerifyBillPaymentWithAddData([
'UserName' => 12324,
'Password' => 432123,
'Bill_Id' => 153585611140,
'Payment_Id' => 8560103,
]);

或者你的,除了额外的数组

$info = $client->__call($method, $parameters);

编辑:假设 https://stackoverflow.com/a/5409465/1152471错误可能出在服务器端,因为服务器发回的 header 与 SOAP 1.2 标准不兼容。

也许您必须使用第三方库或什至简单的套接字才能使其正常工作。

关于PHP SoapClient 无法处理消息,因为内容类型为 'text/xml;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320590/

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