尝试使用python发布请求

时间:2016-05-16 18:12:28

标签: python python-3.x

我正在尝试使用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)

这是错误:

enter image description here

这是第二个错误:

enter image description here

2 个答案:

答案 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 = {})

我希望这个有用的