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"]