gpt4 book ai didi

python - 为什么通过 Python `requests` 发出请求的时间几乎是 Postman 的七倍?

转载 作者:行者123 更新时间:2023-12-04 12:17:38 24 4
gpt4 key购买 nike

我目前正在使用 requests.post() 向 Python 2.7 中的服务器发出 HTTP Post 请求。这大约需要 700 毫秒。也绝对没有可能导致延迟的代理服务器,但我仍然绕过任何代理,因为这似乎是该库的问题。

尽管如此,我对那段时间很好奇,因为在我看来,大约 230 个字符的答案需要很长时间。这就是为什么我在 Postman 中尝试了相同的请求。结果是 Postman 中的请求耗时不到 100ms!这更适合我必须完成的任务。一切都与时间有关。

我想知道requests.post()中有没有具体参数我必须设置它还是这个功能那么慢?

该请求目前看起来像这样(非常基本的东西):

req = requests.post(url, json={"Username": username, "Password": password, "TerminalNo": terminalno)}) 
json = req.json()

如果需要,来自服务器的 header :
cache-control →private
content-length →228
content-type →application/json; charset=utf-8
date →Mon, 30 Jul 2018 17:58:05 GMT
server →Microsoft-IIS/7.5
x-aspnet-version →2.0.50727
x-powered-by →ASP.NET

最佳答案

不知道为什么这个重要的问题还没有回答。

无论如何,可能原因是:默认requests.get(...)或者,requests.post(...)不要使用 session 。因为这个原因,每次我们调用这些方法时,每次它都会重新配置连接和所有其他网络内容。

这就是为什么每次都花费与先前请求花费的时间相同的原因。

为了克服这个问题,我们可以使用 session.

import requests

url_call = "https://en.wikipedia.org/wiki/Jamal_Nazrul_Islam"
session = requests.Session()
session.get(url_call)
通过使用 session,第一次调用会花费很多时间。从第二次调用开始,在同一个域上,花费的时间要少得多。

我的实验:

First call: 2154 ms
Second call: 318 ms
Third call: 124 ms
Fourth call: 125 ms

关于python - 为什么通过 Python `requests` 发出请求的时间几乎是 Postman 的七倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51600489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com