2013-02-06 103 views
2

我無法通過curl執行URL。但是,如果簡單地運行查詢thrugh瀏覽器,它的工作正常。我的代碼是這樣的:無法通過捲曲執行url

$xmlData = "<Leads><row no='1'><FL val='First Name'>".$new_fname."</FL><FL val='Last Name'>".$new_lname."</FL><FL val='Email'>".$new_email."</FL><FL val='Phone'>".$new_ph_no."</FL></row></Leads>"; 
$xmlData = htmlentities($xmlData); 
$ch = curl_init("https://crm.zoho.com/crm/private/xml/Leads/insertRecords?newFormat=1&authtoken=XXX&scope=crmapi&xmlData=".$xmlData); 
curl_setopt($ch, CURLOPT_VERBOSE, 1);//standard i/o streams 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);// Turn off the server and peer verification 
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'rsa_rc4_128_sha'); //for godaddy server patch 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//Set to return data to string ($response) 
curl_setopt($ch, CURLOPT_POST, 1);//Regular post 
$response = curl_exec($ch); 
curl_close($ch); 

您能否讓我知道問題在哪裏? 在此先感謝。

+2

你能描述你遇到的實際問題/錯誤嗎? –

+0

使用'curl_error()'來查看問題出在哪裏 –

+0

你通過瀏覽器發出了一個post請求? –

回答

1

下面的代碼應該工作:

$ch = curl_init("https://crm.zoho.com/crm/private/xml/Leads/insertRecords?newFormat=1&authtoken=XXX&scope=crmapi&xmlData=".$xmlData); 

curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
// deactivate certificate checking 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//Set to return data to string ($response) 
curl_setopt($ch, CURLOPT_POST, 1);//Regular post 
$response = curl_exec($ch); 

if(!$response) { 
    echo curl_error($ch), PHP_EOL; 
} 
curl_close($ch); 

討論的意見後,我意識到,問題是,你還沒有安裝在系統上的Thawte的SSL證書。你有兩個選擇:

  • 安裝certificates
  • 禁用證書使用CURLOPT_VERIFYPEER = FALSE

我用在我的例子第二種方法只是爲了展示如何使你的代碼的工作檢查。對於生產系統,我會建議您安裝證書。

+0

我收到以下錯誤: SSL證書問題,請驗證CA證書是否正常。詳細信息:錯誤:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:證書驗證失敗 – Srimanta

+0

檢查我的輸出http://pastxt.com/P/5Y2I09WROO – hek2mgl

+0

但在您的方案中,它顯示「SSL證書確認無誤」,但它爲什麼是現在爲我顯示,而我正在得到錯誤。 – Srimanta