标签:ipa read 工作 license window 代码 手动 pycharm 对象
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 哦!
1.通过pip安装 pip install Requests
2.使用IDE安装比如 pycharm
先来一个简单的例子吧!让你了解下其威力:
1 # r = requests.get(url=‘http://www.itwhy.org‘) #最基本的get请求 2 # print r.status_code #返回状态 3 # r= requests.get(url=‘http://www.baidu.com/‘,params={‘wd‘:‘python‘}) #带参数的get请求 4 # print r.url 5 # print r.text #d打印解码后的返回数据
HTTP不仅get这么简单,其他的方式也是一句话哦
1 get = requests.get(‘http://httpbin.org‘) #get请求 2 post = requests.post(‘https://httpbin.org/post‘) #post请求 3 put = requests.put(‘http://httpbin.org/put‘) #put请求 4 delete = requests.delete(‘http://httpbin.org/delete‘) #delete 请求 5 head = requests.head(‘http://httpbin.org/get‘) #head请求 6 options = requests.options(‘http://httpbin.org/get‘) #option 请求
已上的HTTP方法,对于WEB系统一般只支持GET 和post 有一些还支持HEAD方法。
1 #带参数的请求实例 2 3 requests.get(‘http://www.dict.baidu.com/s‘,params={‘wd‘:‘python‘}) 4 requests.post(‘http://www.itwhy.org/wp-comments-post.php‘,data = {‘comment‘:‘测试post‘})
post传送数据的几种方法
如果我们要发送复杂的表单,就需要POST数据了。和GET传送数据一样,想方法中额外添加一个data参数的事儿。这种方式相当于你在表单中填写这些数据,然后点击表单的提交。
1.提交表单数据
1 data = { 2 ‘name‘:‘yitian‘, 3 ‘age‘:22, 4 ‘friends‘:[‘zhang3‘,‘li4‘] #创建一个data表单数据 5 } 6 response = requests.post(‘{base_url}post‘,data=data) #传入一个字典data
2.提交字符串数据
有时候POST数据不是使用表单方式,而是直接在请求体中附加参数。那么我们在发送参数的时候不能向data参数添加字典了,而应该传递字符串。
1 response = requests.post(‘{base_url}post‘,data=json.dumps(data)) #上面的例子就是将data字典数据转成json数据结构
json.loads() : 将json结构转变成Python数据结构
json.dumps():将Python数据结构转变成json结构
json.load(): 读取json文件转成Python数据结构
json.dump():写入json文件,读取json文件然后转成Python数据结构
3.直接提交JSON字符串当作整体传送
有些程序(例如Github的API)需要将JSON字符串直接当做请求体发送,比如说上面这种将字典转换为JSON的例子。在这种情况下,我们可以直接将字典的引用传递给方法的json参数,这样就不需要我们手动转换,requests会自动转换。
1 response = requests.post(‘{base_url}post‘,json=data)
4.上传文件
在网页上,上传头像等操作都需要上传multipart/form-data类型的表单。使用requests也非常简单。需要注意打开文件的时候最好使用二进制模式,使用文本模式打开文件可能导致requests不能正确计算文件的大小。
file = open(r‘c:\Windows\System32\drivers\etc\hosts‘, mode=‘rb‘) #rb是以二进制读取方式 data = { ‘file‘: file } response = requests.post(f‘{base_url}post‘, files=data) print(response.text)
requests 支持流式上传的,允许发送大的数据流或文件而无需先把他读入内存。需使用流式上传
1 with open(‘massive-body‘) as f: 2 requests.post(‘http://some.url/streamed‘,data=f)
cookie 操作
如果要获取响应的cookies,调用cookies属性即可,它会返回一个RequestsCookieJar
对象,它实现了标准库的http.cookiejar。所以我们可以按照cookiejar的
方法来使用RequestsCookieJar
。比如说访问百度的时候,它会分配一个cookie,所以我们可以使用下面的代码获取Cookie。
1 cookies = requests.cookies.RequestsCookieJar() 2 cookies.set(‘name‘,‘yitian‘) 3 response = requests.get(‘{base_urlcookies‘,cookies=cookies) 4 print response.text
标签:ipa read 工作 license window 代码 手动 pycharm 对象
原文地址:http://www.cnblogs.com/stephenmc/p/7569519.html