2017-05-08 17 views
1

HTTPSリンクでSOAPリクエストを作成しようとしています。 私はCurl Failedを受け取ります:0(これはエラーを意味します)しかし、私は空の文字列を受け取りました。CurlでHTTPSリクエストが失敗しました:Curlで0は返されませんPHP

$url = $soapUrl; 

$soap_do = curl_init(); 
set_time_limit(0); 
curl_setopt($soap_do, CURLOPT_URL,   $url); 
curl_setopt($soap_do, CURLOPT_AUTOREFERER, true); 
curl_setopt($soap_do, CURLOPT_MAXREDIRS,  10); 
curl_setopt($soap_do, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, true); 
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, 2); 
curl_setopt($soap_do, CURLOPT_POST,   true); 
curl_setopt($soap_do, CURLOPT_POSTFIELDS,  $xml_post_string); 
curl_setopt($soap_do, CURLOPT_VERBOSE,  TRUE); 
curl_setopt($soap_do, CURLOPT_HTTPHEADER,  $headers); 

$response = curl_exec($soap_do); 
$error = curl_error($soap_do); 

var_dump($response); 

echo "Curl Failed: " . curl_errno($soap_do), "<br/>"; 
echo curl_error($soap_do); 

私のコードに問題がありますか?

+0

用途: PHPも、SOAPクライアントが、中に構築多分あなたはそれを試してみることができています'curl_getinfo()'を実行すると、リクエストの結果に関する詳細が表示されます。 –

+0

あなたは '$出力= curl_exec($ soap_do)のような何か欠けている、私は私のコードを更新し、私は自分のコードを更新し' – Hackerman

+0

を – phpmeter

答えて

0

curl_exec();はどこですか?

あなたはたくさんのオプションを設定していますが、ほとんどのものは微妙な調整のためのものだと思います。 あなたは、私は別の答えに与えたこの例でそれを試みることができる:

Send an XML post request to a web server with CURL

EDIT:

$context = stream_context_create([ 
     'http' => [ 
      'user_agent' => 'PHPSoapClient' 
     ], 
     'ssl' => [ 
      'verify_peer' => false, 
      'verify_peer_name' => false, 
      'allow_self_signed' => true 
     ] 
    ]); 

    $soap = new SoapClient($url, [ 
     'stream_context' => $context, 
     'cache_wsdl' => WSDL_CACHE_NONE, // WSDL_CACHE_MEMORY 
     'trace' => 1, 
     'exception' => 1, 
     'keep_alive' => false, 
     'connection_timeout' => 500000 
    ]); 

    // Then call the SOAP method 
    echo $soap->version(); 
+0

をchewckしてください、あなたの更新されたコードは、私のために正常に動作します – phpmeter

+0

]チェックしてください。おそらく 'CURLOPT_SSL_VERIFYPEER false'を設定するか、SoapClientでビルドを試してください。私の更新の答え – PKeidel

+0

を参照してください、私はhttpsのリンクにアクセスするために私のための証明書を持っている必要がありますか? – phpmeter

関連する問題