1

我正在使用 zoho api,在提交表单时编辑用户详细信息后,我创建 URL 并使用 CURL 调用 URL,以便我可以将 xml 响应作为“记录已更新”。下面是我用来使用 CURL 发送 GET 请求的代码,我也尝试过 POST 请求,但没有成功

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

它返回“false”,但是当我使用相同的 URL 并手动输入浏览器地址栏并点击它时,它可以工作并显示“记录已更新”,但在这种情况下,我无法检查响应并通知用户操作成功或其他什么。

为什么相同的 URL 不能与 CURL GET 或 POST 一起使用?以下是我的网址...如果您使用浏览器地址栏在网址下方调用...它将起作用,但使用 CURL 则不起作用

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"> email1@yopmail.com </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

设置截图 在此处输入图像描述

4

1 回答 1

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"> email1@yopmail.com </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 进行编码……对于浏览器,默认情况下会执行此操作。

于 2012-02-21T04:48:18.087 回答