我的任務是開發一個客戶端到第三方的web服務,我無法訪問或處理哪個服務器機器和源代碼。我所擁有的是API規範和地址。 該程序在沒有驗證的情況下可以在DevelopEnvironment上正常工作,但在ProductionEnvironment中它需要基本的http驗證和證書,然後我甚至不能收到任何答案。 他們說我可以使用自簽名證書,所以我在我的服務器(CentOS Apache2 + PHP5.3.3)中創建了一個。Soapclient具有證書和基本身份驗證到DotNet Web服務
該公司向我發送了一個功能性的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();
答案是:沒有答案!只有超時。
我已經適應這兩個StackOverflow的主題拍攝的信息:
- How to use PHP5 SoapClient::SoapClient() with client certificate?
- SoapClient not sending certificate
請檢查您的問題,pastebin鏈接不起作用。 – hakre
對於local_cert,您是否嘗試過使用$ pemPath? – denormalizer