无法在url中使用xml调用api方法

发布于 2025-01-07 16:33:09 字数 2087 浏览 3 评论 0原文

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

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

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

为什么同一个 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"> [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

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

I am using zoho api and after editing the user details when i submit a form i create URL and using CURL to call the URL so i can get xml response as "Record updated". Below is the code i m using to send GET request using CURL, I have tried POST request too that didnt worked

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

It returns "false" but when i use same URL and manually put in browsers address bar and hit anter it works and says "record updated" but with this case i cant check responce and notify user that operation is successfull or something.

Why the same URL isnt working with CURL GET or POST ?? below is my url...if u call below url with browser address bar...it will work but with CURL it doesnt

https://crm.zoho.com/crm/private/xml/Leads/updateRecords?newFormat=1&apikey=*
amp;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

Screenshot of setup
enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扛起拖把扫天下 2025-01-14 16:33:09

试试这个

$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=*
amp;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;

您需要在发送之前对您的网址进行编码...
对于浏览器,它默认执行此操作。

Try this

$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=*
amp;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;

You need to encode ur url before sending ...
In the case of browser, it does this by default.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文