10

urllib3を使用してWebページに接続しようとしています。コードを以下に示します。

import urllib3
http=urllib3.PoolManager()
fields={'username':'abc','password':'xyz'}
r=http.request('GET',url,fields)

URLがユーザー名とパスワードを使用して認証する必要があるWebページであると想定した場合、認証に正しいコードを使用していますか?

私はurllib2を使用してこれを非常に快適に実行しましたが、urllib3を使用して同じことを実行することはできませんでした。

どうもありがとう

4

2 に答える 2

28

基本認証を実行しようとしていると仮定すると、Authorizationヘッダーにエンコードされたユーザー名とパスワードを入力する必要があります。urllib3.make_headersヘルパーを使用してこれを行う1つの方法は次のとおりです。

import urllib3

http = urllib3.PoolManager()
url = '...'
headers = urllib3.make_headers(basic_auth='abc:xyz')
r = http.request('GET', url, headers=headers)
于 2012-07-09T02:56:43.993 に答える
-1

以下は、リクエストライブラリ(Python 3.6ではubuntu)を使用してAPIに対して認証するための実用的な例です。それが役に立てば幸い!

import json
import requests
from requests.auth import HTTPBasicAuth

def __init__(self):
    header = {"Content-Type": "application/json"}
    access_url = "https://your.login.url/context_path"
    data = {
    "key_to_send":"value_to_send"
    }

def get_token(self):
    self.data = json.dumps(self.data)
    encoded_data = json.dumps(self.data).encode('utf-8')
    self.response = requests.post(self.access_url, auth=HTTPBasicAuth(self.username, self.password), headers=self.header, data=self.data)
    # Show me what you found
    print(self.response.text)
于 2020-08-17T18:04:30.700 に答える