3

file_get_contentsを使用しようとしています。php.iniでallow_url_fopenが有効になっていることを確認しました。今のところ、それは私に言っています:

[function.file-get-contents]:ストリームを開くことができませんでした:HTTPリクエストが失敗しました!HTTP /1.1401無許可

私がしているのは次のことだけです。ブラウザから問題なくアクセスできます。

$url=('http://site/@api/users/=john_smith@site.com/properties');
$xmlString=file_get_contents($url);

これは認証の問題だと思いますが、スクリプト自体から適切なクレデンシャルを提供する方法がわかりません。任意のアイデアをいただければ幸いです。

4

3 に答える 3

13

あなたのURLで試してください:

http://user:password@site/ 

(API の URL の残りの部分を追加します)

于 2010-08-25T13:52:16.963 に答える
6

ユーザー情報を URL に入れるだけです。

$url = 'http://user:password@domain.tld/foo/bar/whatever';
于 2010-08-25T13:52:23.703 に答える
4

ステータス コードは、401 Unauthorized認証されているはずなのに認証されていないか、間違った資格情報で認証されたことを意味します。これは、HTTP プロトコルに組み込まれた認証である HTTP 認証を使用する場合に最も一般的に使用されるため、HTML ドキュメントだけでなく、HTTP プロトコルを介して転送されるあらゆるものに共通です。

HTTP 認証で認証するusername:password@には、URL のホスト名の前に追加するだけです。例えば:

http://foobar:mysupersecretpassword@example.com/passwordprotected/

これにより、ユーザー名とパスワードを使用して/passwordprotected/ディレクトリが要求されます。example.comfoobarmysupersecretpassword

それよりも悪いことではありません。:)

于 2010-08-25T14:20:50.833 に答える