设置cURL以调用REST API

时间:2012-03-23 15:19:24

标签: php api curl

我一直在尝试设置对REST API的cURL调用数天(参见我之前的主题),但仍然无法正常工作......

虽然,我需要的是相当简单的:
我需要使用POST方法调用url。此URL需要身份验证(根据文档,我应该使用GET函数通过HTTP标头传递)。最重要的是,我需要设置一个正文(<searchCriteriaSorting></searchCriteriaSortin),我应该使用Content-Type: application/xmlCharset=UTF-8

没有更多,没有更少。根据API的作者,它应该非常简单。但我和我的同事都设法建立与此API的可靠连接。

1 个答案:

答案 0 :(得分:6)

要使用身份验证,您可以使用cURL选项CURLOPT_USERPWD。要定义您要使用POST,请使用cURL选项CURLOPT_POST。要设置所需的标题,您可以使用cURL选项CURLOPT_HTTPHEADER。最后,您必须使用cURL选项CURLOPT_POSTFIELDS设置HTTP POST请求的主体,其中$ xml是您的XML内容。

/* init cURL session */
$ch = curl_init();
...
/* set password */
curl_setopt($ch, CURLOPT_USERPWD, "loginname:passwort");
/* use method POST */
curl_setopt($ch, CURLOPT_POST, true);
/* set header 'Content-Type' */
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=UTF-8'));
/* set HTTP body */
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
...
/* exec cURL request */
curl_exec($ch);
curl_close($ch);