我们如何使用urllib.request在Python中使用POST方法?

时间:2016-06-28 07:28:35

标签: python-3.x urllib

我必须在Python中使用urllib.request来使用POST方法,并为POST方法编写了以下代码。

values = {"abcd":"efgh"}
headers = {"Content-Type": "application/json", "Authorization": "Basic"+str(authKey)}
req = urllib.request.Request(url,values,headers=headers,method='POST')
response = urllib.request.urlopen(req)
print(response.read()) 

我可以使用'GET''DELETE',但不能'POST'。可以任何人帮助我解决这个? 谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用请求模块。

import requests
...
url="https://example.com/"
print url
data = {'id':"1", 'value': 1}
r = requests.post(url, data=data)
print(r.text)
print(r.status_code, r.reason)

答案 1 :(得分:0)

您可以在不安装任何其他软件包的情况下发送呼叫。

使用您的输入数据和URL调用此函数。函数将返回响应。

from urllib import request
import json

def make_request(input_data, url):
    # dict to Json, then convert to string and then to bytes
    input_data = str(json.dumps(input_data)).encode('utf-8')

    # Post Method is invoked if data != None
    req =  request.Request(url, data=input_data)
    return request.urlopen(req).read().decode('utf-8')