gpt4 book ai didi

php - 消息 '' 上指定的 SOAP 操作与 HTTP SOAP 操作不匹配,

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:23 27 4
gpt4 key购买 nike

我正在尝试将我的脚本连接到 SOAP 客户端。但是当我尝试这样做时会抛出上述错误。当我试图获得功能时$客户端->__getFunctions()。它显示了所有功能。当我尝试调用它们时,它以 fatal error 结束。

$client = new SoapClient("http://bsestarmfdemo.bseindia.com/MFOrderEntry/MFOrder.svc?singleWsdl",array(
'soap_version' => SOAP_1_2, // !!!!!!!
));
var_dump($client->__getFunctions());
//var_dump($client->__getTypes());

$login_params = array(
'UserId' => 123456,
'Password' => 123456,
'PassKey' => 1234569870,

);

//$response = $client->getPassword($login_params);
$response = $client->__soapCall('getPassword', array($login_params));
dd($response);

如果我将 SOAP 版本更改为 1.1,则会出现另一个错误 无法处理消息,因为内容类型为“text/xml; charset=utf-8' 不是预期的类型 'application/soap+xml; charset=utf-8'。 如果我知道我在这里缺少什么,那就太好了。

最佳答案

解决@Naveen Kumar 的回复:这是我的解决方案。

// Apply WSA headers
$action = new \SoapHeader('http://www.w3.org/2005/08/addressing', 'Action', self::ACTION_PREFIX.$this->action);
$to = new \SoapHeader('http://www.w3.org/2005/08/addressing', 'To', $this->endpoint);
$this->client()->__setSoapHeaders([$action, $to]);

最后,$this->client 简单地返回一个 \SoapClient 的实例,并且操作包含方法的完整 URL。当然,To 部分是可选的,但在我的例子中,它显然指向 .wsdl 文件中指定的端点。

关于php - 消息 '' 上指定的 SOAP 操作与 HTTP SOAP 操作不匹配,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46668068/

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