簡體   English   中英

使用 urllib3 進行身份驗證

[英]authentication with urllib3

我正在嘗試使用 urllib3 連接到網頁。 下面提供了代碼。

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

如果我們假設 url 是一些需要使用用戶名和密碼進行身份驗證的網頁,我是否使用正確的代碼進行身份驗證?

我已經非常輕松地使用 urllib2 完成了這項工作,但我無法使用 urllib3 完成同樣的事情。

非常感謝

假設您正在嘗試執行Basic Authentication ,那么您需要將編碼的用戶名和密碼放在Authorization標頭中。 這是使用urllib3.make_headers幫助程序執行此操作的一種方法:

import urllib3

http = urllib3.PoolManager()
url = '...'
headers = urllib3.make_headers(basic_auth='abc:xyz')
r = http.request('GET', url, headers=headers)

下面是一個使用請求庫(ubuntu 和 python 3.6)對 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM