设置请求类型& CURL请求中的内容类型

时间:2014-04-17 07:45:42

标签: php curl

我正在使用KODAK api在我的网站中集成照片打印功能。一切正常,但在创建订单时会显示错误消息,如下面的URL

所示

https://ws.test.kdfse.com/vasp2/rest/order/?retailer=Target&app=PNMEMORYDEMO&country=US&app_version=1.0

如果您无法看到错误消息,则可以看到我收到的消息

------------------------------

HTTP状态401

  • 类型:状态报告
  • 消息:方法不允许
  • description:请求的资源不允许使用指定的HTTP方法(Method Not Allowed)。

GlassFish Server开源版3.1.2.2

------------------------------

出于这个原因,我还谈到了柯达api技术支持,但是他们说确保在制作时将正确的“请求方法”设置为POST,将“Content-Type”设置为application / x-www-form-urlencoded这个电话。

我使用cURL进行此调用,但不知道如何设置请求类型& CURL请求中的内容类型。

我正在使用下面的代码。请建议&纠正我的原因。

$ch = curl_init("https://ws.test.kdfse.com/vasp2/rest/order/PNPlasqTouch_T1366049430039_OKS13105x64222081_CTARGET/status/current");
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_TIMEOUT,60);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$result=curl_exec ($ch);
echo "<pre>";print_r($result);exit;

提前致谢。

2 个答案:

答案 0 :(得分:0)

你可以使用;

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));

最终代码将是;

$ch = curl_init("https://ws.test.kdfse.com/vasp2/rest/order/PNPlasqTouch_T1366049430039_OKS13105x64222081_CTARGET/status/current");
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_TIMEOUT,60);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($curl, CURLOPT_USERPWD, "your_username:your_password");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
$result=curl_exec ($ch);
echo "<pre>";print_r($result);exit;

更新:有关设置http标头的详细信息,请参阅here。此外,您使用的是安全服务,您可以将CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST设置为1

答案 1 :(得分:0)

HTTP Status 401表示您未经授权。我点击了你的链接,它要求输入用户名/密码。因此,请按如下方式设置身份验证:

// use your user/password at here
curl_setopt($curl, CURLOPT_USERPWD, "username:password");