2017-04-05 128 views
-2

我试图实现this API方法并使用PHP cURL发送GET请求。使用XML参数执行GET请求(PHP cURL)

这里是我的代码:

$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)但这并不能解决问题。

+1

数据被发送的身体不在url –

回答

0

我已经试过str_replace函数(””, '%20',$网址)

你这样做是错误的。对于任务合适的工具是urlencode()

编辑

你应该重构你的代码,并通过定期POST请求发送这个数据,而这正是它是什么的。

+0

我试过了,以及使用'$ ch = curl_init(urlencode($ url))',但它仍然不起作用。 –

+0

问题是由换行符造成的,'urlencode()'不起作用,因为我的XML结构中有'/',所以我需要保留它们。 –

+0

为什么你通过GET发送而不是POST呢? –