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

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

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

# -*- 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.request
import 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)
html = urllib.request.urlopen(response)
print(html.read())
print(html.getcode(),html.msg) #获得html返回的状态
print(html.headers) #返回头部信息 #下面调用两个方法:
urllib_test(url,data)
requests_test(url,data,headers)

关于这两个库的get请求,我就不多讲了。

requests: requests.get("url")

urllib:不传入data就可以了。

如果要解决接口返回值的unicode编码,则

html.read().decode('unicode-escape')

最新文章

  1. 2016 Google中国开发者大会游记
  2. angular的双向数据绑定
  3. LintCode Merge Sorted Array
  4. CSS 公共样式分享
  5. FUNCS.H中的函数声明
  6. Hive Metastore 代码简析
  7. MongoDB入门三步曲3--部署技术:主备、副本集和数据分片
  8. CSS实现输入框的高亮效果-------Day50
  9. JavaScript学习笔记(十一)——闭包
  10. Android使用HttpUrlConnection请求服务器发送数据详解
  11. eclipse 保存html 提示 save could not be completed
  12. 改变FileUpload文件上传控件的显示方式,确认后上传
  13. CentOS7.4安装jdk1.8.0_201、Tomcat-8.5.38环境
  14. 【JMeter】【微信好文收藏】Jmeter接口测试实战-有趣的cookie
  15. RTSP 与 RTMP 协议 (转)
  16. 一个汇编的HelloWorld!
  17. fhq treap抄袭笔记
  18. 如何做好iOS应用安全?这有一把行之有效的“三板斧”
  19. [BZOJ5427]最长上升子序列
  20. linux下Intellij Idea 14的安装

热门文章

  1. 远程调试在Linux车机中的应用
  2. CF1203D2 Remove the Substring (hard version) 题解
  3. 力扣Leetcode 面试题51. 数组中的逆序对 - 归并排序
  4. Java开发之javaEE(java2EE)的介绍,java软件工程师初步阶段知识
  5. 【python】迭代器与生成器到底是什么?看完你就知道
  6. 网站远程附件存储到 OSS
  7. SpringMVC-Controller&RestFul
  8. python日志模块配置
  9. JS基础回顾_函数
  10. Java反序列漏洞