专栏名称: Python学习交流
每天更新,更新python相关的知识。希望诸君有所收获!
目录
相关文章推荐
Python爱好者社区  ·  DeepSeek创始人梁文锋个人履历 ·  3 天前  
Python爱好者社区  ·  1885页的Python完全版电子书 ·  3 天前  
Python爱好者社区  ·  多模态,杀疯了 ·  2 天前  
Python开发者  ·  o3-mini 碾压 DeepSeek ... ·  5 天前  
Python开发者  ·  请立即拿下软考证书(政策风口) ·  4 天前  
51好读  ›  专栏  ›  Python学习交流

玩Python如何不会调用接口?那和咸鱼有什么区别!

Python学习交流  · 公众号  · Python  · 2018-11-21 16:08

主要观点总结

文章主要介绍了接口测试的两种常用方法:使用urllib库和使用requests库。作者选择使用requests库的原因是因为其使用简洁,相比urllib2的API更友好。文章给出了使用requests库进行接口测试的简单示例,并提到了可以进行的修改和扩展,如封装代码、自动化操作等。同时,文章还提供了urllib库与requests库的对比代码,并简要介绍了两个库的get请求方法。

关键观点总结

关键观点1: 两种接口测试方法:urllib库和requests库的比较

作者选择了requests库进行接口测试,因为它相比urllib2的使用更简洁,API更友好。

关键观点2: requests库的简单使用示例

文章给出了一个使用requests库进行接口测试的简单示例,包括发送post请求、获取返回数据等步骤。

关键观点3: urllib库与requests库的对比代码

文章提供了两个库的对比代码,展示了如何使用urllib库和requests库进行接口测试,并简要介绍了两个库的get请求方法。

关键观点4: 接口测试的修改和扩展

文章提到了可以对接口测试代码进行封装、添加循环实现自动化操作等修改和扩展。

关键观点5: 解决接口返回值的unicode编码问题

文章提到了如果遇到接口返回值编码问题,可以使用html.read().decode('unicode-escape')进行解决。


正文

最近有研究接口测试,然后查了查资料,发现有两种方法,一种是使用urllib库,一种是使用requests库。而在这里,我使用的是requests库,为什么要用这个呢?

从官方文档看出,python的标准库urllib2提供了大部分需要的HTTP功能,但是呢?API太坑,使用标准库实现会写大堆代码。而requests使用起来的话,就比较简洁。(建议使用的开发工具是 pycharm,安装插件方便。)

下面别的不说,先上一个简单示例:

小编备好了短信轰炸的源码,进群:548377875

# -*- coding:utf-8 -*-__author__ = u'harry'

import requests #先导入包,这是必须的url = 'http://XXXXXXXXXXXXXXX' #url:接口地址data = {'XXXX':'XXX'} #data:接口传递的参数headers = {'Connection':'close'} #header:传递header信息
#files:接口中需要上传文件则需要用到该参数r = requests.post(url,data = data,headers = headers) #请求url,获得返回的数据信息print(r.text.encode('utf-8'))                  #获得的返回数据使用text方法进行获取

使用requets就是这么简单。

简单的使用方法写了,各位客官可以对其进行很多的修改。比如说:封装这块代码,每次可以进行调用;可以添加循环,变为自动化,从excel中读取数据,然后进行循环取值。 等等等等。。。。

在最后再加上一个我封装后的urllib库 与 requests库的对比代码:


# -*- coding:utf-8 -*-__author__ = u'harry'import urllib.requestimport requests #先导入包,这是必须的import urllib.parse
url = 'XXXXXXX' # url:接口地址data = {'XXX': 'XXX'} #data:接口传递的参数headers = {'Connection': 'close'} # header:传递header信息# files:接口中需要上传文件则需要用到该参数def requests_test(url,data,headers):
response = requests.post(url,data = data,headers = headers) #请求url,获得返回的数据信息
print(response.text,response.headers) #返回头部信息def urllib_test(url,data):
data1 = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.Request(url=url,data = data1)






请到「今天看啥」查看全文