Php 消息上指定的SOAP操作&x27';,与HTTP SOAP操作不匹配,

Php 消息上指定的SOAP操作&x27';,与HTTP SOAP操作不匹配,,php,web-services,soap,Php,Web Services,Soap,我正在尝试将脚本连接到SOAP客户端。但当我尝试这样做时,它抛出了提到的错误。当我试图用 $client->\uu getFunctions()。它显示了所有的功能。当我试着打电话给他们时,结果是致命的错误 $client = new SoapClient("http://bsestarmfdemo.bseindia.com/MFOrderEntry/MFOrder.svc?singleWsdl",array( 'soap_version' => SOAP_1_2, // !!!!

我正在尝试将脚本连接到SOAP客户端。但当我尝试这样做时,它抛出了提到的错误。当我试图用
$client->\uu getFunctions()
。它显示了所有的功能。当我试着打电话给他们时,结果是致命的错误

$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;字符集=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
文件中指定的端点

你找到解决办法了吗?我们遇到了同样的问题。是的,我确实找到了解决办法。在我的案例中,问题是它需要ws-addressing,而在我的案例中,它没有发送ws-addressing。看一看@重生。soap版本也可能不匹配。@NaveenKumar能否请您发布解决方案。我们实际上面临着同样的问题。@NaveenKumar你能把解决方案贴出来吗,实际上我也面临着同样的问题。我也需要来自bsestar@Wocugon如果你已经找到了解决方案,因为我急需它,你也可以发布吗。请帮帮我,伙计们。