Python中http请求方法库汇总

 更新时间:2016年01月06日 16:12:19   作者:Believer007  
最近在使用python做接口测试,发现python中http请求方法有许多种,今天抽点时间把相关内容整理,对python http请求相关知识感兴趣的朋友一起学习吧

最近在使用python做接口测试,发现python中http请求方法有许多种,今天抽点时间把相关内容整理,分享给大家,具体内容如下所示:

一、python自带库----urllib2

python自带库urllib2使用的比较多,简单使用如下:

import urllib2
response = urllib2.urlopen('http://localhost:8080/jenkins/api/json?pretty=true')
print response.read() 

简单的get请求

import urllib2
import urllib
post_data = urllib.urlencode({})
response = urllib2.urlopen('http://localhost:8080/, post_data)
print response.read()
print response.getheaders() 

这就是最简单的urllib2发送post例子。代码比较多

二、python自带库--httplib

httplib是一个相对底层的http请求模块,urlib就是基于httplib封装的。简单使用如下:

import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print r1.status, r1.reason
data1 = r1.read()
conn.request("GET", "/parrot.spam")
r2 = conn.getresponse()
data2 = r2.read()
conn.close() 

简单的get请求

我们再来看post请求

import httplib, urllib
params = urllib.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("bugs.python.org")
conn.request("POST", "", params, headers)
response = conn.getresponse()
data = response.read()
print data
conn.close() 

是不是觉得太复杂了。每次写还得再翻文档,看看第三种吧

三、第三方库--requests

发请get请求超级简单:

print requests.get('http://localhost:8080).text 

就一句话,再来看看post请求

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print r.text 

也很简单。

再看看如果要认证:

url = 'http://localhost:8080'
r = requests.post(url, data={}, auth=HTTPBasicAuth('admin', 'admin'))
print r.status_code
print r.headers
print r.reason 

是不是比urllib2更简单多了吧,且requests自带json解析。这点非常棒

python中的http请求

import urllib
params = urllib.urlencode({key:value,key:value})
resultHtml = urllib.urlopen('[API or 网址]',params)
result = resultHtml.read()
print result

相关文章

  • django如何设置csrf_token

    django如何设置csrf_token

    这篇文章主要介绍了django如何设置csrf_token问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • python模拟enum枚举类型的方法小结

    python模拟enum枚举类型的方法小结

    这篇文章主要介绍了python模拟enum枚举类型的方法,实例总结了python模拟enum枚举类型的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • python openssl模块安装及用法

    python openssl模块安装及用法

    在本篇文章里小编给大家整理的是一篇关于python openssl模块安装及用法,有需要的朋友们可以学习下。
    2020-12-12
  • 对python中UDP,socket的使用详解

    对python中UDP,socket的使用详解

    今天小编就为大家分享一篇对python中UDP,socket的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 深入解析Python编程中super关键字的用法

    深入解析Python编程中super关键字的用法

    Python的子类调用父类成员时可以用到super关键字,初始化时需要注意super()和__init__()的区别,下面我们就来深入解析Python编程中super关键字的用法:
    2016-06-06
  • Python FTP两个文件夹间的同步实例代码

    Python FTP两个文件夹间的同步实例代码

    本文通过实例代码给大家介绍了python ftp两个文件夹间的同步,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • 详解python调度框架APScheduler使用

    详解python调度框架APScheduler使用

    本篇文章主要介绍了详解python调度框架APScheduler使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 手动安装Anaconda环境变量的实现教程

    手动安装Anaconda环境变量的实现教程

    这篇文章主要介绍了手动安装Anaconda环境变量的实现教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 深度解读Python如何实现dbscan算法

    深度解读Python如何实现dbscan算法

    DBScan 是密度基于空间聚类,它是一种基于密度的聚类算法,其与其他聚类算法(如K-Means)不同的是,它不需要事先知道簇的数量。本文就来带大家了解一下Python是如何实现dbscan算法,感兴趣的可以了解一下
    2023-02-02
  • python批量爬取图片的方法详解

    python批量爬取图片的方法详解

    这篇文章给大家介绍了如何使用python批量爬取图片,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-12-12

最新评论