我正在尝试使用python发出http post请求。此外,我需要totp
身份验证,为此我正在使用pyotp
。对于我正在使用请求库的请求。但代码不起作用,我不知道错误在哪里。你有想法吗?我正在使用python 3.5。
这是代码:
import requests
import json
from requests.auth import HTTPDigestAuth
import pyotp
totp = pyotp.TOTP('base32secret3232')
url = 'http://3425325325664364345365'
datas = {
"github_url": "https://gist.github.com/323332/333333",
"contact_email": "354353634643@gmail.com"
}
headers = {
'Accept': '*/*',
'Content-Length': '134',
'Content-Type': 'application/json',
'Host': '45654645654756456457547547',}
AUTH = HTTPDigestAuth('57457457447547@gmail.com4575475745745', 'totp')
r = requests.post(url, json = datas, headers = headers, auth = AUTH)
print (r.status_code)
这是错误:
这是第二个错误:
答案 0 :(得分:0)
在我再次阅读你的问题之后,我意识到我错过了最后一部分。
我可能错了,因为我从未使用过这个软件包,但你使用的是python 3.5但pyotp
只支持2.7 - > pypi
答案 1 :(得分:0)
使用python3.5你试过以下的库吗? (https://docs.python.org/3/library/http.client.html) 查看以下示例:
import http.client
from base64 import b64encode
username= username.encode('utf-8')
password=password..encode('utf-8')
separator = (':').encode('utf-8')
something = b64encode(username+separator+password).decode("ascii")
header = {'Authorization': 'Basic %s' % something}
connect = http.client.HTTPSConnection("url")
response = connect.getresponse()
print(response.status) #to validate the response code
connect.request('PUT', 'target_REST', headers=headers)
你也可以添加我刚刚选择省略它的主体 - HTTPConnection.request(method,url,body = None,headers = {})
我希望这个有用的