添加x-www-form-urlencoded以发布请求

时间:2017-03-11 14:09:03

标签: python

example from postman

 import urllib2
    url = "http://www.example.com/posts"

        req = urllib2.Request(url,headers={'User-Agent' : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/11.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30" , "Content-Type": "application/x-www-form-urlencoded"})
        con = urllib2.urlopen(req)
        print con.read()

现在这段代码工作正常,但我想添加你在邮递员图片中看到的值,以获得我想要的响应,我不知道如何将键和值postid = 134686添加到python中并且&#&# 39;邮递员的要求

2 个答案:

答案 0 :(得分:1)

表单编码是发送带有数据的POST请求的常规方式。只需提供一个data字典;你甚至不需要指定内容类型。

data = {'postid': 134786}
headers = {'User-Agent' : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.30 (KHTML, like Gecko) Ubuntu/11.04 Chromium/12.0.742.112 Chrome/12.0.742.112 Safari/534.30"}
req = urllib2.Request(url, headers=headers, data=data)

答案 1 :(得分:0)

需要注意的重要一点是,对于嵌套的json数据,您需要将嵌套的json对象转换为字符串。

data = { 'key1': 'value',
         'key2': {
                'nested_key1': 'nested_value1',
                'nested_key2': 123
         }

       }

字典需要以这种格式转换

inner_dictionary = {
                'nested_key1': 'nested_value1',
                'nested_key2': 123
         }


data = { 'key1': 'value',
         'key2': json.dumps(inner_dictionary)

       }

r = requests.post(URL, data = data)