我在使用php版本5.3.2和curl版本7.19.7時連接到https url時出現問題。它的一個非常小的一段代碼,但這裏是我的PHP代碼cURL https連接
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
/* prepare a stream for writing verbose data to */
$vbh = fopen('php://temp', 'w+');
curl_setopt($ch, CURLOPT_CAINFO, $certificate);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSLVERSION, 6);
/* verbose logging */
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_NOPROGRESS, true);
curl_setopt($ch, CURLOPT_STDERR, $vbh);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $credentials);
$res=(object)array(
'response' => curl_exec($ch),
'info' => (object)curl_getinfo($ch),
'errors' => curl_error($ch)
);
echo 'test2'; die;
curl_close($ch);
rewind($vbh);
$res->debug=stream_get_contents($vbh);
fclose($vbh);
echo '<pre>',print_r($res,true),'</pre>';
怎麼過,如果我使用exec梅索德的同一位置上這樣
$url = "https://lms.lifeline.nl/mailwebservice/inline";
exec("curl $url", $output, $status);
print_r($output);
我得到的結果是這樣的它永遠不會到達echo'test2';死;我的代碼部分
這裏是我艾薇VAR使用數據:
$data ='<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mail="http://www.enovation.nl/ems/mailwebservice">
<soapenv:Header/>
<soapenv:Body>
<mail:ListRequest>
<mail:accountId>***********</mail:accountId>
</mail:ListRequest>
</soapenv:Body>
</soapenv:Envelope>';
$url = 'https://lms.lifeline.nl/mailwebservice/inline/';
$certificate = "full path to crt file";
$headers = array(
'Content-Type: text/xml; charset="utf-8"',
'Content-Length: '.strlen($data),
'Accept: text/xml',
'Cache-Control: no-cache',
'Pragma: no-cache',
'SOAPAction: "Send"'
);
$credentials = "$username:$password";
我想不通,爲什麼在第1節我不能得到響應和它殺死我的代碼,爲什麼在第2節我確實得到了答覆。
也似乎我的cURL循環試圖連接到該網址。
是整個捲曲代碼?上面給出的網址立即提示授權,所以你的代碼需要考慮http認證,很可能使用SSL證書,驗證服務器等,並遵循重定向 – RamRaider
以及這是不是我的完整版本這是https://codeshare.io/ayD110,但因爲curl_exec休息我不能使用curl_error來檢查什麼是錯的惠特請求 – EndLessWave