使用php curl进行身份验证的基本web服务

使用php curl进行身份验证的基本web服务,php,json,web-services,rest,curl,Php,Json,Web Services,Rest,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($cu

需要使用来自需要用户名/密码才能访问的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);

当我在浏览器中点击时,它会提示输入un/pw,当我输入它们时,它会显示JSON,所以数据在那里,但我上面写的东西不起作用。

原始代码工作正常,但因为资源是https,所以需要以下选项

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

使用此方法的注意事项是“这基本上会导致cURL盲目接受任何服务器证书,而不进行任何验证,以确定哪个CA签署了证书,以及该CA是否可信。如果您关心传递给服务器或从服务器接收的数据,则需要正确启用此对等验证。”-取自

原始代码,工作正常,但由于资源为https,因此需要以下选项

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

使用此方法的注意事项是“这基本上会导致cURL盲目接受任何服务器证书,而不进行任何验证,以确定哪个CA签署了证书,以及该CA是否可信。如果您关心传递给服务器或从服务器接收的数据,则需要正确启用此对等验证。”-取自

在curl\u exec之后使用curl\u error,它表示“警告:curl\u error()期望参数1是资源,布尔值给定”curl\u error($curl\u response);在curl_close()之前使用;尝试curl_error($curl)并告诉我们它说了什么当我这样做时,任何东西都返回到视图当我var_dump($curl_response)时,它返回'bool(false)';当我var_dump($curl)时,它返回'resource(194)of type(curl)'curl_error',curl_exec之后使用curl_error,它说“警告:curl_error()期望参数1是resource,给定的布尔值”curl_error($curl_response);在curl_close()之前使用;尝试curl_error($curl)并告诉我们它说了什么当我这样做时,任何东西都返回到视图当我var_dump($curl_response)时,它返回'bool(false)';当我var_dump($curl)时,它返回'resource(194)of type(curl)'