2012-02-21 12 views
1

我正在使用zoho api,並且在我提交表單時創建用戶詳細信息並創建URL並使用CURL調用URL,以便我可以獲取xml響應作爲「記錄更新」。下面是一個使用使用curl發送GET請求的代碼的IM,我已經試過POST請求太那個didnt工作無法在url中使用xml調用api方法

$ch = curl_init($url); 
$Rec_Data = curl_exec($ch); 
var_dump($Rec_Data); 

它返回「假」,但是當我使用相同的URL並手動將在瀏覽器地址欄和命中安特它的工作原理和說「記錄更新」,但與這種情況下,我無法檢查響應,並通知用戶,操作是成功或什麼的。

爲什麼相同的URL不能使用CURL GET或POST?下面是我的網址...如果u調用下面瀏覽器地址欄中的網址...它會工作,但與捲曲它不設置的

https://crm.zoho.com/crm/private/xml/Leads/updateRecords?newFormat=1&apikey=*$&ticket=ada47f67f130619aaeab5a40069705c8&xmlData= <Leads> <row no="1"> <FL val="LEADID">418176000000055001</FL> <FL val="SMOWNERID">418176000000047003</FL> <FL val="Lead Owner">418176000000047003</FL> <FL val="Company"> Demo </FL> <FL val="First Name"> Test </FL> <FL val="Last Name"> Lead </FL> <FL val="Designation"> This </FL> <FL val="Email"> [email protected] </FL> <FL val="Phone"> 242377 </FL> <FL val="Mobile"> 9865986598 </FL> <FL val="Website"> www.google.com </FL> <FL val="Lead Source"> Advertisement </FL> <FL val="Lead Status"> Contact in Future </FL> <FL val="Industry"> Wireless Industry </FL> <FL val="No of Employees">250</FL> <FL val="Annual Revenue"> 19500 </FL> <FL val="Rating"> Active </FL> <FL val="SMCREATORID">418176000000047003</FL><FL val="Created By">418176000000047003</FL> <FL val="MODIFIEDBY">418176000000047003</FL> <FL val="Modified By">Amit</FL> <FL val="Created Time">2012-02-09</FL> <FL val="Modified Time">2012-02-16</FL> <FL val="Email Opt Out"></FL> </row> </Leads> &id=418176000000055001 

截圖 enter image description here

+0

我從問題和Akhil的答案中刪除了你的API密鑰。如果它允許訪問任何敏感信息,您可能想要使其無效並從zoho獲得新密鑰。 – 2012-02-21 04:57:06

+0

感謝邁克,但它的演示設置沒有敏感的信息...我提供了API密鑰,以便用戶可以看到究竟發生了什麼。 – 2012-02-21 05:50:53

+0

是否有任何其他解決方案:(:(:(??? ??? – 2012-02-21 09:40:22

回答

0

試試這個

$curl_handle=curl_init(); 
curl_setopt($curl_handle, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1"); 
curl_setopt($curl_handle,CURLOPT_URL,urlencode("https://crm.zoho.com/crm/private/xml/Leads/updateRecords?newFormat=1&apikey=*$&ticket=ada47f67f130619aaeab5a40069705c8&xmlData= <Leads> <row no="1"> <FL val="LEADID">418176000000055001</FL> <FL val="SMOWNERID">418176000000047003</FL> <FL val="Lead Owner">418176000000047003</FL> <FL val="Company"> Demo </FL> <FL val="First Name"> Test </FL> <FL val="Last Name"> Lead </FL> <FL val="Designation"> This </FL> <FL val="Email"> [email protected] </FL> <FL val="Phone"> 242377 </FL> <FL val="Mobile"> 9865986598 </FL> <FL val="Website"> www.google.com </FL> <FL val="Lead Source"> Advertisement </FL> <FL val="Lead Status"> Contact in Future </FL> <FL val="Industry"> Wireless Industry </FL> <FL val="No of Employees">250</FL> <FL val="Annual Revenue"> 19500 </FL> <FL val="Rating"> Active </FL> <FL val="SMCREATORID">418176000000047003</FL><FL val="Created By">418176000000047003</FL> <FL val="MODIFIEDBY">418176000000047003</FL> <FL val="Modified By">Amit</FL> <FL val="Created Time">2012-02-09</FL> <FL val="Modified Time">2012-02-16</FL> <FL val="Email Opt Out"></FL> </row> </Leads> &id=418176000000055001 
")); 
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,5); 
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($curl_handle,CURLOPT_REFERER,'http://www.google.com'); 
curl_setopt($curl_handle,CURLOPT_FRESH_CONNECT,true);//No caching 
curl_setopt($curl_handle,CURLOPT_FOLLOWLOCATION,true); 
curl_setopt($curl_handle,CURLOPT_MAXREDIRS,1); 
$buffer = curl_exec($curl_handle); 
curl_close($curl_handle); 

echo $buffer; 

你需要在發送之前編碼你的URL ... 在瀏覽器的情況下,它默認是這樣做的。

+0

邁克感謝這個代碼....但它仍然無法正常工作:(當我var_dump($緩衝區)它返回布爾值false。再見我工作的方式本地主機...這是問題嗎? – 2012-02-21 06:20:03

+0

這是api key =「0QL3CBw8Aaptvsj8L0icYKjtJ2x45yNHkQaMGWeIdlI $」,如果您需要自己嘗試 – 2012-02-21 06:21:00