【Python】http 封装知识小归纳

【Python】http 封装知识小归纳

  • Http请求实现
    • Requests实现Http请求
      • 1.简单的实现:
      • 2.给Http设置请求头
      • 3.数据序列化

Http请求实现

python 中,实现 http 请求有这样几种方式:
1.urllib/urllib2实现;
2.httplib实现;
3.Requests实现;
本次仅记录 Requests 实现

Requests实现Http请求

Requests库是第三方模块,需要额外安装;
安装命令:

pip3 install requests

1.简单的实现:

import requests
# get 方式
respG = requests.get(url)
print(respG.text)
# post 方式
respP = requests.post(url, data=params)
print(respP.text)

这里要注意一点:data一般可以直接放字典的数据;如果要放json数据,则需要改为下面代码:

# post 方式
respP = requests.post(url, json=params)
print(respP.text)

respP.content: 返回的是字节形式
respP.text: 返回的是文本形式
respP.encoding: 返回的是根据HTTP头猜测的网页编码格式

2.给Http设置请求头

很简单,在请求的时候设置headers参数

import requests
content_type = 'application/json;charset=UTF-8'
headers = {'Content-Type': content_type}

respP = requests.post(url, json=params, headers=headers)
print(respP.text)

3.数据序列化

现在一般使用的序列化是json;
那么json的序列化和反序列化怎么处理呢?
实际就是字典和json的互转;

import json

# 序列化成json字符串
d = {'name': 'huet'}
j = json.dumps(d)

# 反序列化成字典
print(json.loads(j))

这里**注意:**requests库中,response提供了json方法,方便将json格式的响应结果反序列化;

resp = requests.post(url, json=params)
print(resp.json())

你可能感兴趣的:(Python,python,http,json)