Python 3.5 利用 Urllib3 包发送 post 请求并设置 header 和 body 中携带 json 格式数据

学习笔记 马富天 2019-04-15 18:49:44 130 0

【摘要】python 是数据处理中比较常用的语言,很多时候可以用来请求接口数据然后进行相关的存储操作,本文给出一个具体实例用于在 python 3 中发送 post 请求并设置 header 协议头以及 body 数据,采用 json 格式。

以下是完整的代码:

  1. import urllib3
  2. import json
  3. data = {
  4.     "username": "mafutian",
  5.     "password": "abc123",
  6.     "data": {
  7.         "clVehicleId": "1234567890"
  8.     }
  9. }
  10. encoded_data = json.dumps(data).encode("utf-8")
  11. http = urllib3.PoolManager()
  12. r = http.request(
  13.     "POST",
  14.     "http://123.123.123.123/",
  15.     body = encoded_data,
  16.     headers = {
  17.         'x-env-code':'mafutian',
  18.         'content-type':'application/json;charset=UTF-8'
  19.     }
  20. )
  21. if r.status == 200:
  22.     reponse     = r.data
  23.     if len(reponse) > 0:
  24.         j = json.loads(reponse)
  25.         print(j)

另外给出 get 请求方式(不带参数):

  1. import urllib3
  2. import json
  3. r = http.request('GET', 'http://www.mafutian.net/')
  4. print(r.status) # 200
  5. print(r.data.decode())# 获得html源码,utf-8解码

get 带参数:

  1. import urllib3
  2. import json
  3. urllib3.disable_warnings()
  4. http    = urllib3.PoolManager()
  5. header  = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'}
  6. data    = {'wd': 'hello'}
  7. timeout = 3 
  8. retries = 5 # 请求重试的次数为5
  9. r = http.request('GET','https://www.baidu.com/s?',fields = data,headers = header,timeout = timeout,retries = retries)
  10. print(r.status) # 200
  11. print(r.data.decode())

版权归 马富天PHP博客 所有

本文标题:《Python 3.5 利用 Urllib3 包发送 post 请求并设置 header 和 body 中携带 json 格式数据》

本文链接地址:http://www.mafutian.net/417.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 sql 语句查询存在于一张表中而不存在于另外一张表数据的三种最常用方法 》 下一篇《 MySQL 高级部分 —— show profile 分析 sql 效率【 profiling 命令】 》

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码

TOP10

  • 浏览最多
  • 评论最多