2012-02-08 57 views
0

POST请求如何打击与Content-Type头设置为application/JSON的URL。如何打网址使用的PHP

我的代码返回“请求不是全成”(条件的其他侧)。我是初学者,所以请帮助我理解为什么这不起作用。

代码:

$data_string=json data here;  
    $ch = curl_init('www.here is url');                  
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));                                 
    if(curl_exec($ch)) 
     echo "request successfull"; 
    else 
     echo "request not successfull" 

    curl_close($ch); 
+0

你为什么要送那的HTTPHeader?使用'json_decode($ data_string,真)'应该很好做的工作,不是吗? – Vyktor 2012-02-08 18:21:05

+1

是杰森被罚款实际上这个问题是,我是hitting..they有即将到期的SSL证书的网站。现在寄托都优良,工作.. – Natasha 2012-02-08 19:13:32

回答

3
curl_setopt($ch, CURLOPT_POST, true); 

是你所需要的。自定义请求适用于较少使用的HTTP动词。要找出为什么卷曲请求失败,使用

echo curl_error($ch); 
+0

由curl_error($ CH); 我收到此错误SSL证书问题,请验证CA证书是否正常。详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 – Natasha 2012-02-08 18:25:55

+0

您的curl安装没有要验证的CA列表,或者您正在点击的网站具有无效的证书。 – 2012-02-08 18:27:17

+0

如果这样,可以在浏览器中打开该页面没有得到一个警告? – 2012-02-08 18:28:28

1

尝试这样的:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url);