0

401 応答を返すページに [user+pass] で接続する方法を教えてください。

たとえば、phpではそのように見えます

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://192.168.1.1/');

curl_setopt($ch, CURLOPT_USERPWD, $user.':'.$pass);

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 4);

$result = curl_exec($ch);

$returnCode = (int)curl_getinfo($ch, CURLINFO_HTTP_CODE);
4

4 に答える 4

1

シンプルなものを探しているなら、requestsライブラリは可能な限りシンプルです。ドキュメントからの基本認証の簡単な例を次に示します。

>>> requests.get('https://api.github.com/user', auth=('user', 'pass'))
<Response [200]>
于 2012-11-05T20:21:43.117 に答える
0

キーワード基本HTTP認証を探しています。

それ以上のことをしないのであれば、サードパーティのモジュールを使用することはお勧めしません。もしそうなら、requestsすでに提案されているライブラリは素晴らしい選択です。

次の例は、urllib2ドキュメントから抜粋したものです。

import urllib2
# create a password manager
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()

# Add the username and password.
# If we knew the realm, we could use it instead of None.
top_level_url = "http://example.com/foo/"
password_mgr.add_password(None, top_level_url, username, password)

handler = urllib2.HTTPBasicAuthHandler(password_mgr)

# create "opener" (OpenerDirector instance)
opener = urllib2.build_opener(handler)

# use the opener to fetch a URL
opener.open(a_url)

# Install the opener.
# Now all calls to urllib2.urlopen use our opener.
urllib2.install_opener(opener)
于 2012-11-05T20:30:48.197 に答える
0

ここには 3 つの適切なオプションがあります。

まず、組み込みのurllib2(Python 2) またはurllib(Python 3) を使用でき、非常に使いやすいです。

2 つ目は、requests. (多くの場合、 を使用して記述するのに数十行かかるコードcurlurllib、 を使用した 2 ライナーのコードですrequests。)

最後に、php の低レベルの libcurl ラッパーの使用方法は既に知っているので、Python 用のサードパーティ製の代替手段がいくつかありますが、それらはほとんど同じです。この検索を見てpycurlpycurl2、 、 、および を調べて、pyclibcurlどれが最もなじみがあるかを確認してください。

于 2012-11-05T20:23:41.353 に答える
0

urllib2 モジュールを使用できます - http://docs.python.org/2/library/urllib2.html

于 2012-11-05T20:18:03.667 に答える