[Python系列]Python的request库

Python经常被用来做爬虫和http接口测试,很大一部分原因就是requests库的方便易用,实际学习过程中可以对比下java的httpclient包。

1.安装requests库

pip install requests

requests定义了常用的http方法:

requests.get(“https://xxx”) #GET请求
requests.post(“https://xxx”) #POST请求
requests.put(“https://xxx/put”) #PUT请求
requests.delete(“https://xxx/delete”) #DELETE请求
requests.head(“https://xxx/get”) #HEAD请求
requests.options(“https://xxx/get”) #OPTIONS请求
```
以最常用的get方法为例:
```
# 不带参数的get方法
def member_in():
    ret = None
    try:
        ret = requests.get(globals.member_in_url)
    except Exception as e:
        logging.info("member_in failed : " + e.message)
        return

    sid = ret.content
    logging.info("member_in success " + sid)

    return sid

# 带参数的get方法
def member_out(sid):
    try:
        # get可通过url传参
        requests.get(globals.member_out_url + "?sid=" + sid)
        # requests.get(globals.member_out_url, params={'sid': sid})
    except Exception as e:
        logging.info("member_out failed :" + e.message)
        return
    logging.info("member_out success : " + sid)
    return
```
post方法带参数:
```
import requests
import json

# 键值对参数
requests.post(globals.member_out_url, data={'intence': 'POST测试'})

# 待json参数
requests.post(globals.member_out_url, data=json.dumps({'intence': 'POST测试'}))
```
设置header
```
import requests
import json
 
data = {'test': 'testdata'}
headers = {'content-type': 'application/json','xxx','yyy'}
 
r = requests.post(globals.member_out_url, data=data, headers=headers)
print(r.text)
```

3.response对象
requests的方法会返回一个response对象,类似java里面的HttpResponse
```
r = requests.get(globals.member_out_url)

logger.info(r.status_code)  #返回http状态码。
logger.info(r.raw) #返回原始响应体,也就是 urllib 的 response 对象。
logger.info(r.content) #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。
logger.info(r.text) #字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
logger.info(r.headers) #以字典对象存储服务器响应头。
```

4.其他
cookie,鉴权等等
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,597评论 6 427
  • 环境管理管理Python版本和环境的工具。p–非常简单的交互式python版本管理工具。pyenv–简单的Pyth...
    MrHamster阅读 3,856评论 1 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,647评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • KPI是指在管理层面的目标分解。 在文中提到分解目标时的平衡性,个人观点,像我们的K分、A分是否应该保持平衡,应该...
    王朋彦阅读 393评论 0 0