http发送post请求_python发送post请求_httpclient发送post请求

python的标准库中,虽然提供了urllib,utllib2,httplib,但是做接口测试,requests真心好,正如官方说的,“让HTTP服务人类”,一言以蔽之,说明一切,关于它的方法论这里不是讨论的重点,重点是我们要开始学习它。

安装request库的方式非常简单,安装命令为:

pip install requests

这样就会自动下载并且按照成功,进入到python的命令行模式下,如果可以导入request,说明requests库已经安装好,见如下的截图:

httpclient发送post请求_python发送post请求_http发送post请求

在HTTP的请求中,我们知道,最常使用的分别有GET,PUT,DELETE,POST,通过request库也是可以实现的,见如下的代码:

#!/usr/bin/env python

#coding:utf-8

import requests

requests.get(‘https://github.com/timeline.json’)

requests.put(‘http://httpbin.org/put’)

requests.post(‘http://httpbin.org/post’)

requests.delete(‘http://httpbin/ddelete’)

事实上,每一个请求对应的参数是不同的,在这里我们有必要对每个请求的参数来了解并学习,先来看GET请求的参数,见源码部分:

http发送post请求_httpclient发送post请求_python发送post请求

GET请求中,第一个参数是url,第二个请求是params,第三个参数是字典,比如我们实现在百度阅读搜索无涯编写的《selenium-python自动化测试》,实现这样的一个过程请求的 url为:

%D7%D4%B6%AF%BB%AF%B2%E2%CA%D4

那么通过代码实现的方式为:

#!/usr/bin/env python

#coding:utf-8

import requests

r=requests.get(url=’http://yuedu.baidu.com/ebook/3c0077aaa32d7375a41780bb’,params={‘_searchquery’:’selenium-python%D7%D4%B6%AF%BB%AF%B2%E2%CA%D4′})

print r.url

我们看请求的URL,见执行后的截图:

在GET请求中,我们把params的参数成为URL参数,也就是在URL中传递参数,事实上,在每一个GET的请求过程中,得看具体的请求过程。接下来我们来看POST请求的参数,见该部分的源码截图:

httpclient发送post请求_python发送post请求_http发送post请求

我们可以看到,在POST请求中,参数是URL,data,json以及字典,data其实就是以表单形式的数据,或者说我们只需要把一个字典给data作为参数来传递,来看这样的一个请求,请求的URL为:,参数是城市的ID,然后返回这个城市,来看这样的一个POST请求,见实现的代码:

#!/usr/bin/env python

#coding:utf-8

import requests

r=requests.post(url=’http://m.cyw.com/index.phpm=api&c=cookie&a=setcity’,data={‘cityId’:438})print r.json()

见返回的json数据,见截图:

http发送post请求_python发送post请求_httpclient发送post请求

事实上,在一个post请求中,这是一个简单的请求,在工作的时候,很多时候是登录成功后,返回一个token,然后后面的每一个请求都带这个参数token去请求,也就是说,在接口自动化测试中,首先要做的就是登录获取token这个参数,下来后面的请求把获取的这个参数token带上去请求或者操作系统的其他业务,下面来看实现这样的一个过程代码,实现的思路把登录写成一个方法,然后把token返回python发送post请求,再做下一个请求的时候,把token当作参数来传递,具体实现见如下的代码:

httpclient发送post请求_python发送post请求_http发送post请求

注释:如上的代码部分被红色的掩盖,希望理解,再如上的代码中,我们可以看到python发送post请求,登录成功后,返回了token,然后在执行其他接口的时候,直接把返回的token当作是参数来处理,但是有一点是必须得注意的,必须先登录,再执行登录后的接口,要不会提示错误的。

使用requests发送一个请求后,我们可以获取这个请求的响应内容,HTTP的状态码,以及URL,我们来看这样的一个过程,比如请求bing,我们获取text,stats_code,url和headers,见实现的代码:

#!/usr/bin/env python

#coding:utf-8

import requests

r=requests.get(‘http://www.bing.com’)

限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688