Python post请求两种传送正文方式

Python014

Python post请求两种传送正文方式,第1张

HTTP 请求中 POST 提交的数据常见的两种编码方式:

1、application/x-www-form-urlencoded 

Reqeusts支持以form表单形式发送post请求,只需要将请求的参数构造成一个字典,然后传给requests.post()的data

key_1中argument以参数传递进去

d = {'key_1': argument, 'key_2':2,  'key_3':''}   

header = {'content-type':'application/x-www-form-urlencoded'}

请求格式如下:

r = requests.post(url, headers=header, cookies=cookie, data =d)

r = r.json()  获取返回结果

print (r) 打印结果,查看请求是否成功

2、application/json 

header = {'content-type':'application/json'}

application/json   将json串传给requests.post()的json参数

j =  {

    "key_1": 1,

    "key_2": 2,

    "key_3": ""

        }

r = requests.post(url, headers=header, cookies=cookie, json =j)

r = r.json() 

print (r) 打印结果,查看请求是否成功

一、post请求及响应详解

返回结果:

大家看,其实通过post发送请求很简单

下面再讲讲返回信息的具体内容

大家看,其实有很多的返回值参数,其实我们实际中能用到的并不多,我下边一一列举出来了

response.json():返回信息的格式是json,应为我们请求的时候是json格式,返回的也是一个json,如果返回报错,应该是开发的接口出错了

response.text:如果response.json,可以使用text调试一下,看看具体的返回内容是什么,这里看到的都是字符串了

response.status_code:返回的http状态码,200是成功,404是未找到接口路径,500是服务器错误,等等

response.url:返回请求时的url地址

response.headers:返回服务器给你的响应header

response.cookies:返回服务器给你的cookies,这是一个多么好的获取cookie的方法啊,

response.content:同response.text是一样的

二、post请求中的其他参数

复制

import requests

res = requests.post(url="url",data="body",timeout=30,verfiy=False)

print(res.json())

url:请求的全路径地址,一定是要完整的路径哦

data:请求的内容,如果是json的格式,最好使用json.dumps,反序列化一下,避免格式错误,如果是其他格式,就都是字符串了

timeout:设置超时时间,这样我们在自动化测试和爬虫的时候,当达到了设置的超时时间,我们的程序就退出不会一直等待了,可以做其他操作了

verfiy:如果请求的接口是https协议,这个参数就很好用了,如果设置该参数为True,那么我们的脚本就是要配置CA证书,建议参数值为False,好用又简单

好了,post的请求详解就这些了,欢迎大家点赞留言,我会给大家解答疑问的