2012-10-23 36 views
2

我的任務是開發一個客戶端到第三方的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的主題拍攝的信息:

  1. How to use PHP5 SoapClient::SoapClient() with client certificate?
  2. SoapClient not sending certificate
+0

請檢查您的問題,pastebin鏈接不起作用。 – hakre

+0

對於local_cert,您是否嘗試過使用$ pemPath? – denormalizer

回答

0

最後,他們的生產服務器不能正常工作,並且他們」已經改變了幾個設置和參數。 我使用了簡單的CURL基本http認證,並完成了。