2017-09-13 63 views
0

我正在嘗試使用請求包編寫一個使用組織內託管的在線mongodb查詢服務API的python腳本。 API期望採用格式爲「websitename/username:Password」的授權標頭,並使用基本身份驗證base64編碼。我試圖創建一個使用請求包,它具有以下格式的授權標頭的GET請求:python中的請求包中的授權標頭

import requests 

headers = {'Authorization': 'Basic %s' % 'Base64encoded 
websitename/username:Password string here'} 

content_res = requests.get(get_url, headers = headers).json() 

但我得到一個語法錯誤這裏的字符串,因爲我認爲預期的字符串爲標題請求包在這裏是'用戶名:密碼'的形式,而不是所需的格式,即'websitename/username:password'。

有沒有一種方法可以在服務期望的格式中使用base64編碼的sting,即請求包中的'websitename/username:password'?

任何幫助,高度讚賞。

謝謝。

回答

1

這聽起來像你得到一個HTTP響應錯誤,因爲你傳遞的授權標題值不是base64編碼。

的Python 2.7 https://docs.python.org/2/library/base64.html

的Python 3.5 https://docs.python.org/3.5/library/base64.html

一個例子是這樣的:

import base64 
import requests 

website = 'example.com' 
username = 'root' 
password = '1234' 
auth_str = '%s/%s:%s' % (website, username, password) 
b64_auth_str = base64.b64encode(auth_str) 

headers = {'Authorization': 'Basic %s' % b64_auth_str} 

content_res = requests.get(get_url, headers=headers).json() 
+0

感謝很多要糾正這一點,你可以使用base64 Python模塊簡單地編碼字符串強尼!這解決了我正面臨的問題:) – shripati007

+0

嗨Jonny,如果在auth_str字符串中使用斜槓反斜槓。我試過了,但它給出了一個錯誤'像對象的字節是必需的,而不是str'。您認爲針對此問題的任何解決方法? – shripati007

相關問題