web-dev-qa-db-ja.com

curlを使用してプロキシ(polipo)経由で基本的な認証保護されたWebサイトにアクセスする

基本認証で保護されたファイルをダウンロードしようとしています:

curl "http://User:[email protected]/blub/bla.bin"

これは正常に動作しています。

Curlにローカルにインストールされたpolipoを使用するように指示するとすぐに失敗します。

$ http_proxy="http://127.0.0.1:8123" curl "http://XXXXX:[email protected]/blub/bla.bin"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<title>Proxy error: 504 Host XXXXX lookup failed: Host not found.</title>
</head><body>
<h1>504 Host XXXXX lookup failed: Host not found</h1>
<p>The following error occurred while trying to access <strong>http://XXXXX:[email protected]/blub/bla.bin</strong>:<br><br>
<strong>504 Host XXXXX lookup failed: Host not found</strong></p>
<hr>Generated Wed, 12 Mar 2014 22:46:10 CET by Polipo on <em>hostname:8123</em>.
</body></html>
$

これは、Polipoまたはカールのエラーが原因で発生しますか? (または私はそれを間違っていますか?)

編集:http_proxy="http://127.0.0.1:8123" curl -u XXXXX:Pass "http://example.com/blub/bla.bin"は正常に動作しています。ありがとう!

6
FadenB

もう少し掘り下げた後、自分でアンサーを見つけました:

http://curl.haxx.se/docs/manual.html 状態

注意! URL仕様によると、HTTP URLにはユーザーとパスワードを含めることができないため、curlが他の時間に許可している場合でも、プロキシを介してcurlを使用するとスタイルが機能しません。プロキシを使用する場合は、ユーザーとパスワードに-uスタイルを使用する必要があります。

だから私はそれを間違った方法でやっていました:)

2
FadenB

http_proxyを使用する必要はありません。これを試してください:

curl -x PROXY-SERVER:PORT -U USER:PASS URL

curl -x 127.0.0.1:8123 -U XXXXX:Pass "http://example.com/blub/bla.bin"

11