【问题标题】:Perform GET request with an XML parameter (PHP cURL)使用 XML 参数执行 GET 请求(PHP cURL)
【发布时间】:2017-08-30 22:54:14
【问题描述】:

我正在尝试实现this API 方法并使用 PHP cURL 发送 GET 请求。

这是我的代码:

    $url = 'https://crm.zoho.com/crm/private/xml/'.$module.'/'.$method.'?authtoken='.config('app.ZOHO_KEY').'&scope=crmapi&newFormat=1&id='.$record_id.'&xmlData='.$XML_data;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);

URL 计算如下:

https://crm.zoho.com/crm/private/xml/Contacts/updateRecords?authtoken=XXXX&scope=crmapi&newFormat=1&id=2410575000000139003&xmlData= <Contacts> <row no="1"> <FL val="Email Opt Out">true</FL> </row> </Contacts>

但是,请求失败。我试过str_replace(' ', '%20', $url),但这并不能解决问题。

【问题讨论】:

  • 数据在正文中而不是在 url 中发送

标签: php php-curl


【解决方案1】:

我试过 str_replace(' ', '%20', $url)

你做错了。该任务的适当工具是urlencode()

编辑

您应该重构您的代码并通过常规 POST 请求发送此数据,这正是它的用途。

【讨论】:

  • 我也试过用$ch = curl_init(urlencode($url)),但还是不行。
  • 问题是由换行引起的,而且urlencode() 也不起作用,因为我的 XML 结构中有 /,我需要保留它们。
  • 为什么你通过 GET 而不是 POST 发送这个呢?
猜你喜欢
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 2013-12-09
  • 1970-01-01
  • 1970-01-01
  • 2013-06-18
  • 2018-03-30
相关资源
最近更新 更多