get请求但是需要用body传参

将body参数放到data形参中传递,但是需要先将参数json.dumps()序列化

data格式化

如果请求失败,可以尝试在headers中添加​​'Content-Type': 'application/json'​

import requests

params = {
"username": "zhangsan"
}

resp = requests.request("GET", url, headers=headers, data=json.dumps(params))
# 输出响应body
logger.info("response:\n{}".format(resp.text)) # 没有格式化
print(json.loads(resp.text)) # 格式化之后的

# 也可以尝试使用.json()方法一步到位获取格式化之后的 response body
print(resp.json())

注意:


这种情况下如果想使用postman来传参,需要将body中的参数放在选择「raw』形式的「body」,而不是form-data形式,否则得不到预期的请求结果,因为「raw」和 「form-data」两种形式还是有差别的。


自动生成curl

使用curlify库,使用前需要先 pip 安装

import requests

import curlify

resp = requests.request("GET", url, headers=headers)
curl = curlify.to_curl(resp.request)
print(curl)

获取请求 headers

resp = requests.get(url)
request_headers = resp.request.headers
encoding = request_headers["encoding"]