簡體   English   中英

Curl的HTTPS請求失敗:0但在Curl PHP中沒有響應

[英]HTTPS request with Curl Failed: 0 but no response in Curl PHP

我正在嘗試使用HTTPS鏈接發送soap請求。 我得到卷曲失敗:0(這意味着沒有錯誤)但是,我收到一個空字符串。

$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);

我的代碼有問題嗎?

你的curl_exec();在哪里curl_exec();

你正在設置很多選項,但我認為最多只是用於微調。 您可以嘗試使用我在另一個答案中給出的示例:

使用CURL將XML發布請求發送到Web服務器

編輯:PHP也有一個SOAP客戶端內置,也許你可以嘗試:

    $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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM