JSON 形式のユーザー名とパスワードを含む .txt ファイルを使用して認証方法に投稿することにより、PHP を使用して Web サービスに認証しようとしています。
うまくいかず、その理由を理解するのに苦労しています。
これが私が使用しようとしているコードです。まず、投稿を行うために使用している関数があります。次に、データ ファイル用の変数と、認証サービスの URL 用の変数を作成します。
<?php
function do_post_request($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'POST',
'content' => $data
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
// Let's get logged in and get an authkey
$url = 'http://service.com/auth';
$data= 'creds.txt';
$authkey = do_post_request($url, $data);
print_r($authkey);
?>
私のcreds.txtファイルのテキスト:
{ "auth": { "username": "myusername", "password": "mypassword" } }
私は何を間違っていますか?無効なデータ エラーが発生します。テキスト ファイルへの完全な URL を使用する必要がありますか? テキストファイルが適切にフォーマットされていませんか?
サービスのドキュメントには、次のものが必要だとだけ書かれています。
「ユーザー名とパスワードを含む JSON 形式のテキスト ファイル」