如何通过python发送带有标题的GET请求

如何通过python发送带有标题的GET请求,python,get,fiddler,Python,Get,Fiddler,我让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-Ag

我让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
您可以将SSL套接字()打开到
example.com:443
,将捕获的请求作为原始字节写入该套接字,然后从该套接字读取HTTP响应

您也可以尝试使用
http.client.HTTPResponse
类从套接字读取和解析http响应,但该类不应直接实例化,因此可能会出现一些意外障碍。

您可以将SSL套接字()打开到
example.com:443
,将捕获的请求作为原始字节写入该套接字,然后从套接字读取HTTP响应

import requests

headers = {
    'authority': 'stackoverflow.com',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    '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',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'referer': 'https://stackoverflow.com/questions/tagged/python?sort=newest&page=2&pagesize=15',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'en-US,en;q=0.9,tr-TR;q=0.8,tr;q=0.7',
    'cookie': 'prov=6bb44cc9-dfe4-1b95-a65d-5250b3b4c9fb; _ga=GA1.2.1363624981.1550767314; __qca=P0-1074700243-1550767314392; notice-ctt=4%3B1550784035760; _gid=GA1.2.1415061800.1552935051; acct=t=4CnQ70qSwPMzOe6jigQlAR28TSW%2fMxzx&s=32zlYt1%2b3TBwWVaCHxH%2bl5aDhLjmq4Xr',
}

response = requests.get('https://stackoverflow.com/questions/55239787/how-to-send-a-get-request-with-headers-via-python', headers=headers)
您也可以尝试使用
http.client.HTTPResponse
类从套接字读取和解析http响应,但该类不应直接实例化,因此可能会出现一些意外的障碍

import requests

headers = {
    'authority': 'stackoverflow.com',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    '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',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'referer': 'https://stackoverflow.com/questions/tagged/python?sort=newest&page=2&pagesize=15',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'en-US,en;q=0.9,tr-TR;q=0.8,tr;q=0.7',
    'cookie': 'prov=6bb44cc9-dfe4-1b95-a65d-5250b3b4c9fb; _ga=GA1.2.1363624981.1550767314; __qca=P0-1074700243-1550767314392; notice-ctt=4%3B1550784035760; _gid=GA1.2.1415061800.1552935051; acct=t=4CnQ70qSwPMzOe6jigQlAR28TSW%2fMxzx&s=32zlYt1%2b3TBwWVaCHxH%2bl5aDhLjmq4Xr',
}

response = requests.get('https://stackoverflow.com/questions/55239787/how-to-send-a-get-request-with-headers-via-python', headers=headers)
这是一个如何向此页面发送带有标题的get请求的示例

这是一个如何将get请求发送到此带有标题的页面的示例。

您可以使用该模块

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

由于您发送的是GET请求,因此可以使用
params
参数整齐地形成GET请求

示例:

导入请求
基本URL=”https://example.com/api/content/v1/products/search"
标题={
“连接”:“保持活动状态”,
“用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/72.0.3626.121 Safari/537.36”
}
参数={
“第20页”,
“页面大小”:25,
“类型”:“图像”
}
response=requests.get(基本URL,headers=headers,params=params)
您可以使用该模块

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

由于您发送的是GET请求,因此可以使用
params
参数整齐地形成GET请求

示例:

导入请求
基本URL=”https://example.com/api/content/v1/products/search"
标题={
“连接”:“保持活动状态”,
“用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/72.0.3626.121 Safari/537.36”
}
参数={
“第20页”,
“页面大小”:25,
“类型”:“图像”
}
response=requests.get(基本URL,headers=headers,params=params)

您可以尝试使用常规TCP socketUse传输HTTP请求。您通常需要将请求从Fiddler导出到Python。您可能需要使用导出会话功能,该功能可以从Fiddler请求生成curl命令。然后您可以将这个curl命令转换为Python代码。另外,还有一个直接生成Python代码的Fiddler扩展:您可以尝试像使用常规TCP socketUse一样传输HTTP请求。您通常需要将Fiddler请求导出到Python。您可能希望使用export Sessions函数,该函数可以从Fiddler请求生成curl命令。然后您可以将这个curl命令转换为Python代码。另外,还有一个直接生成Python代码的Fiddler扩展: