我的任务是将客户端开发给第三方的Web服务,这是我无法访问或处理的服务器机器和源代码。我所拥有的只是API规范和地址。 该程序在没有身份验证的情况下可以在DevelopEnvironment上正常工作,但在ProductionEnvironment中它需要基本的http身份验证和证书,然后我甚至无法收到任何答案。 他们说我可以使用自签名证书,所以我在我的服务器上创建了一个(CentOS Apache2 + PHP5.3.3)。
该公司向我发送了一个功能性的DotNetServiceClient代码段,其中包含app.config,该链接如下所示。
我需要一些如何在PHP SoapClient或CURL中发送此身份验证和证书的示例。
这是C#应用程序的app.config,带有假IP和证书: http://pastebin.com/Jt9k6DB0
这是我目前的客户代码:
/* PHP WebService Client */
$pemPath = '/my/certificate/directory/selfsignedcertificate/thatwebservice.pem';
$pemBuffer = file_get_contents($pemPath);
$connectionParameters = array(
'login' => 'login',
'password' => 'password',
'trace' => TRUE,
'encoding' => 'UTF-8',
'exceptions' => TRUE,
'cache_wsdl' => WSDL_CACHE_NONE,
'soap_version' => SOAP_1_2,
'local_cert' => $pemBuffer,
'passphrase' => 'd3e343der434wds',
);
$theClient = new SoapClient($serverWSDLURL, $connectionParameters);
$r = $theClient->GetBasicWorkData();
答案:没有答案!只有timeOut。
我已经调整了从这两个StackOverflow主题中获取的信息:
答案 0 :(得分:0)
最后,他们的生产服务器工作不正常,他们改变了几个设置和参数。 我使用了简单的CURL基本http身份验证,已经完成了。