【问题标题】:SoapClient not working giving errorSoapClient 不工作给出错误
【发布时间】:2014-10-06 09:37:26
【问题描述】:

我正在使用 PHP SoapClient 对以下 URL 使用肥皂调用请求。

https://stagingxml.tamarindtours.in/Version1.0/BaseDetails.svc?wsdl

我使用了以下代码。

$HeaderSecurity = array("UsernameToken"=>array("Username"=>"xxx",
                                          "Password"=>"xxx",
                                )

);

$client = new SoapClient('https://stagingxml.tamarindtours.in/Version1.0/BaseDetails.svc?wsdl',array('trace' => 1));
$header[] = new SoapHeader("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd","Security",$HeaderSecurity);

$client->__setSoapHeaders($header);
//$client->__setLocation("https://YourTargetLocation/"); if you have wsdl file you don't need to use this line 
$REsponse = $client->GetCountries();

我收到以下错误。

致命错误:未捕获的 SoapFault 异常:[a:InvalidSecurity] An 验证消息的安全性时发生错误。在 /opt/lampp/htdocs/wssoap.php:148 堆栈跟踪:#0 /opt/lampp/htdocs/wssoap.php(148): SoapClient->__call('GetCountries', 数组)#1 /opt/lampp/htdocs/wssoap.php(148): SoapClient->GetCountries() #2 {main} 抛出 /opt/lampp/htdocs/wssoap.php 在第 148 行

你能帮帮我吗?谢谢。

【问题讨论】:

  • 我会检查实际的请求和响应。使用通过“trace=true”提供的 __get* 函数。另外,但这可能是一个红鲱鱼,即使使用 HTTPS,我也不必使用 __setSoapHeaders()!

标签: php soap-client


【解决方案1】:

服务器可能有无效的 SSL 证书。

如果此错误对您不重要,请尝试忽略 SSL 证书检查,如下所述:https://stackoverflow.com/a/8447706/911718(参见 cmets 也了解 allow_self_signed 选项)

编辑:与您相同的错误并在https://stackoverflow.com/a/16794759/911718解决了错误

【讨论】:

  • @kelvin 也试试
  • 好的,也看看这个。与您相同的错误并在stackoverflow.com/a/16794759/911718 解决
  • 他们已经定义了https://stagingxml.tamarindtours.in/Version1.0/BaseDetails.svc
猜你喜欢
  • 2020-10-26
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 2014-10-26
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
相关资源
最近更新 更多