首页 > 解决方案 > 如何通过python发送带有标头的GET请求

问题描述

我让 fiddler 捕获了一个 GET 请求,我想用 python 重新发送确切的请求。这是我捕获的请求:

GET https://example.com/api/content/v1/products/search?page=20&page_size=25&q=&type=image HTTP/1.1
Host: example.com
Connection: keep-alive
Search-Version: v3
Accept: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36
Referer: https://example.com/search/?q=&type=image&page=20
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9

标签: pythongetfiddler

解决方案


您可以使用请求模块。

requests模块会自动为您提供大部分标题,因此您很可能不需要手动包含所有标题。

由于您正在发送 GET 请求,因此您可以使用该params参数来整齐地形成查询字符串

例子:

import requests

BASE_URL = "https://example.com/api/content/v1/products/search"

headers = {
    "Connection": "keep-alive",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
}

params = {
    "page": 20,
    "page_size": 25,
    "type": "image"
}

response = requests.get(BASE_URL, headers=headers, params=params)

推荐阅读