目录
1 GET请求
1.1 无参数
1.2 查询字符串
2 POST
2.1 无参数
2.2 json数据
2.3 文件
3 一些常见的请求
3.1 base64
requests是请求用的,在发起请求中requests会默认帮我们解决一些问题,比如跨域
下面做几个例子,服务选用flask,服务的结构就是这样的,根据不同的请求会换不同的视图与路由
1 GET请求
1.1 无参数
视图与路由
请求
import requests
url = 'http://127.0.0.1:5000/get_no_params'
response = requests.get(url)
print(response)
print(type(response))
print(response.text)
print(type(response.text))
直接打印response我们会看到状态码,response得到的是一个对象,调用response对象的text方法可以得到响应的内容
1.2 查询字符串
服务
请求
import requests
url = 'http://127.0.0.1:5000/get_with_params?data1=20&data2=30'
response = requests.get(url)
print(response)
print(type(response))
print(response.text)
print(type(response.text))
2 POST
2.1 无参数
服务
请求
import requests
url = 'http://127.0.0.1:5000/post_no_params'
response = requests.post(url)
print(response)
print(type(response))
print(response.text)
print(type(response.text))
2.2 json数据
服务
请求
import requests
url = 'http://127.0.0.1:5000/post_with_params'
json_data = {'data1': 'Suyu','data2':18}
response = requests.post(url,json=json_data)
print(response)
print(type(response))
print(response.text)
print(type(response.text))
2.3 文件
我现在像将python.png上传到file中
服务
请求,files也是一个对象,里面有不同的键,在服务端去拿
import requests
url = 'http://127.0.0.1:5000/post_with_file'
files = {'file':open('./python.png','rb')}
response = requests.post(url,files=files)
print(response)
print(type(response))
print(response.text)
print(type(response.text))
请求之后就发现搞进来了
3 一些常见的请求
3.1 base64
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,可以用base64传输图像
服务
请求
import requests
import cv2
import base64
url = 'http://127.0.0.1:5000/post_with_base64'
frame = cv2.imread('python.png')
retval, buffer = cv2.imencode('.png', frame)
image = str(base64.b64encode(buffer), 'utf-8')
json_data = {'img_base64': image}
response = requests.post(url,json=json_data)
print(response)
print(type(response))
print(response.text)
print(type(response.text))
在请求结束(关闭显示图像的窗口)之前,服务端会显示出图像