2013-01-20 97 views
1

需要使用需要用户名/密码才能访问的Web服务中的某些数据。使用php curl进行身份验证的基本Web服务

下返回NULL

$service_url = 'https://example.com/2365139.json'; 
$curl = curl_init($service_url); 
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($curl, CURLOPT_USERPWD, "username:password"); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data); 
$curl_response = curl_exec($curl); 
$response = json_decode($curl_response); 
curl_close($curl); 

var_dump($response); 

当我在浏览器中点击https://example.com/2365139.json,它提示UN/PW,当我进入他们来说,这显示了JSON,所以数据是有,但东西我上面写的不工作。

+0

在curl_exec后面使用curl_error它说:“警告:curl_error()期望参数1是资源,布尔给定” – Adrian

+0

curl_error($ curl_response);在curl_close()之前使用; – Adrian

+0

尝试curl_error($ curl)并告诉我们它说什么 – Ivan

回答

4

原始代码工作正常,但由于资源是https,它需要以下选项;

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

需要说明的使用,这是“基本上,这将导致卷曲盲目接受任何服务器证书,没有做任何验证哪个CA签署它,不论该CA是可信的。如果你在所有关心您传递给服务器或从服务器接收的数据,都需要正确启用对等验证。“ - 取自http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

相关问题