0
点赞
收藏
分享

微信扫一扫

requests的不同请求方法时的参数请求方式

祈澈菇凉 2022-06-17 阅读 94

前言:

requests的不同请求方法时的参数请求方式_post请求

测试网址:

①http://httpbin.org/get

②http://httpbin.org/post

1、get请求方法 --- 带请求参数:

import requests

'''
URL Parameters 请求方式: URL参数
例如: 以get方式请求 http://httpbin.org/get?first_name=hello&last_name=word

'''
params = {"first_name": "hello", "last_name": "word"}

responds = requests.get("http://httpbin.org/get", params=params)
print(responds.headers)
print(responds.url)

2、post请求方法 --- 请求信息的媒体类型为application/x-www-form-urlencode:

"""
表单参数提交
Content-Type: application/x-www-form-urlencoded
例如: 以post方式请求 http://httpbin.org/post 增加的资源为data={"first_name":"hello","last_name":"word"}
"""
import requests

data = {"first_name": "hello", "last_name": "word"}
headers = {"Content-Type": "application/x-www-form-urlencoded"}

responds = requests.post("http://httpbin.org/post", data=data, headers=headers)

print(responds, type(responds), sep='\n')

3、post请求方法 ---请求信息的媒体类型为application/json:

"""
Json数据提交
Content-Type: application/json
例如: 以post方式请求 http://httpbin.org/post 增加的资源为data={"first_name":"hello","last_name":"word"}
"""
import json

import requests

data = {"first_name": "hello", "last_name": "word"}
responds = requests.post("http://httpbin.org/post", json=data, headers={"Content-Type": "application/json"})
print(responds, type(responds))


data = {"first_name": "hello", "last_name": "word"}
responds = requests.post("http://httpbin.org/post", data=json.dumps(data), headers={"Content-Type": "application/json"})
print(responds, type(responds))

4、post请求方法 --- 请求信息的媒体类型为multipart/form-data:

除了传统的application/x-www-form-urlencoded表单,我们另一个经常用到的是上传文件用的表单,这种表单信息的媒体类型为multipart/form-data。【请求信息同时包含文件和表单数据】

①请求信息为表单数据(不包含文件)

requests.post(url='',data={'key1':'value1','key2':'value2'}, headers={'Content-Type':'multipart/form-data'})

②请求信息同时包含表单数据以及文件

"""
发送文件中的数据需要(安装requests_toolbelt):
例如: 以post方式请求 http://httpbin.org/post
"""
from requests_toolbelt import MultipartEncoder
import requests

m = MultipartEncoder(
fields={
'field0': 'value',
'field1': 'value',
'field2': ('filename', open('file.py', 'rb'), 'text/plain')
}
)

r = requests.post('http://httpbin.org/post', data=m, headers={'Content-Type': m.content_type})

print(r.json())

5、post请求方法 --- 请求信息的媒体类型为binary:

"""
例如: 以post方式请求 http://httpbin.org/post
Requests库 支持请求信息以multipart媒体类型请求;只需将文件传给requests.post()中的files参数即可
"""
import requests

response = requests.post(url='http://httpbin.org/post',
headers={'Content-Type': 'binary'},
files={'file': open('test.xls', 'rb')})
print(response.json())

 

去期待陌生,去拥抱惊喜。

举报

相关推荐

0 条评论