READMEには、「 .netrc
からの認証情報も尊重されます」と書かれていますが、これがどのように行われるかは明確ではありません。 これを説明するために、READMEを更新する必要があります。 PRを提出したいのですが、それでもわかりません。 curl -n
ほど簡単ではありません。
今のところ、HTTPieは常にデフォルトの~/.netrc
ファイル(またはWindowsでは~/_netrc
)を読み取ろうとします。 それを行うのは、実際には基盤となるpython-requests
ライブラリです。
うーん... curl
で完全に機能する~/.netrc
ファイルがありますが、HTTPieでは完全に無視されているようです。
これが実際の例です:
~/.netrc
:
$ http httpbin.org/basic-auth/httpie/test
HTTP/1.1 401 UNAUTHORIZED
Connection: close
Content-Length: 0
Date: Wed, 10 Apr 2013 16:49:10 GMT
Server: gunicorn/0.16.1
Www-Authenticate: Basic realm="Fake Realm"
これを~/.netrc
追加しました:
machine httpbin.org
login httpie
password test
そしてそれは拾われました:
$ http httpbin.org/basic-auth/httpie/test
HTTP/1.1 200 OK
Connection: close
Content-Length: 47
Content-Type: application/json
Date: Wed, 10 Apr 2013 16:49:23 GMT
Server: gunicorn/0.16.1
{
"authenticated": true,
"user": "httpie"
}
--verbose
フラグを設定して、HTTPieがAuthorization: Basic xxxxxx
送信するかどうかを確認することもできます。
実際には、 $ python -m netrc
を実行して、Pythonの標準ライブラリのnetrc
モジュールが~/.netrc
をどのように理解しているかを確認できます。
この短い例を使用して、Readmeを変更するためのプルリクエストを開きました。
フォローアップするために、 .netrc
のlogin
フィールドの1つに、Pythonだけを気にするような値がありません.netrc
た。 curl
、なんらかの理由で問題はありませんでした。
最も参考になるコメント
実際には、
$ python -m netrc
を実行して、Pythonの標準ライブラリのnetrc
モジュールが~/.netrc
をどのように理解しているかを確認できます。