1

アクセスにユーザー名/パスワードを必要とする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が表示されるため、データはありますが、上記で記述したものが機能しません。

4

1 に答える 1

4

元のコードは正常に機能しますが、リソースがhttpsであるため、次のオプションが必要です。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

これを使用する際の注意点は、「これにより、基本的に、cURLは、どのCAが署名したか、およびそのCAが信頼できるかどうかを確認せずに、サーバー証明書を盲目的に受け入れます。データについてまったく心配している場合は、サーバーとの間で受け渡しを行う場合は、このピア検証を適切に有効にする必要があります。」-http: //unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/から取得

于 2013-01-21T00:29:43.403 に答える