繁体   English   中英

PHP的SOAP不发送certificate.pem

[英]php SOAP not sending certificate.pem

我可以加载wsdl,拉出函数和数据类型就可以了,但是当我尝试在服务器上调用函数时,出现连接错误。 当我查看$ request中传递的soap数据时,它不包含任何安全证书,并且不会生成任何错误。

我的代码如下所示:

  // setup the transaction array
  $header = array('local_cert' => "certificate.pem",
                  'logonUser'  => "user_name",
                  'style'      => SOAP_DOCUMENT,
                  'use'        => SOAP_LITERAL,
                  'exceptions' => true,
                  'trace'      => true);                  

  // create the soap client, this will log us in
  $client = new SoapClient($wsdl, $header);

  try
  { 
    $response = $client->getMessage($parameters);
  }
  catch (Exception $e) 
  {
    dumpVars($client->__getLastRequest()); 
    echo 'Caught exception: ',  $e->getMessage(), "\n"; 
  }
?>

所以我的问题是,我该怎么做才能使安全证书通过?

谢谢,

皮特

$ header中local_cert的目的不是在SOAP调用本身中发送它。 它仅用作SSL客户端证书。 另外,根据php.net上的此注释,您需要阅读证书的文件内容才能使用它。

2(小)件东西:

  • 对于SoapClient构造函数, 'logonUser'似乎不是有效的选项。 如果它是此服务的必需标头,请考虑使用soapClient :: setSoapHeaders 如果它是标准的HTTP登录参数,请使用“登录”键。

  • 尝试使用pem证书的完整路径,并确保php可读

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM