Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python requests.post是这么慢还是我做错了什么?_Python_Performance_Python Requests - Fatal编程技术网

Python requests.post是这么慢还是我做错了什么?

Python requests.post是这么慢还是我做错了什么?,python,performance,python-requests,Python,Performance,Python Requests,我是一名新的python程序员,任务是做一个简单的应用程序来进行API调用。它工作得很好,但是我对速度不满意。我在低速互联网连接和高速互联网连接上都试过。平均而言,进行API调用所需的时间从1.3秒到2.4秒不等。我已经在5mbps到80mbps的互联网连接上进行了测试,两者都显示出类似的结果(正负0.5秒的差异)。 从纸面上看,所花费的时间并不算太长,但是,当我在拨打电话的服务器上进行检查时,处理时间仅为0.2-0.5秒,这意味着在请求过程中会损失1-2秒的时间。 以下是我正在使用的代码:

我是一名新的python程序员,任务是做一个简单的应用程序来进行API调用。它工作得很好,但是我对速度不满意。我在低速互联网连接和高速互联网连接上都试过。平均而言,进行API调用所需的时间从1.3秒到2.4秒不等。我已经在5mbps到80mbps的互联网连接上进行了测试,两者都显示出类似的结果(正负0.5秒的差异)。

从纸面上看,所花费的时间并不算太长,但是,当我在拨打电话的服务器上进行检查时,处理时间仅为0.2-0.5秒,这意味着在请求过程中会损失1-2秒的时间。

以下是我正在使用的代码:

import requests
import json
import time
import uuid
import requests.packages.urllib3

requests.packages.urllib3.disable_warnings() 

#get api call start time
startTime = time.time()

#make api call
r=requests.post(APIUrl, data=payload, headers=headers, verify=False)

#get api call finish time
endTime = time.time()

#calculate time taken
totalTimeTaken = str(float(round((endTime - startTime ),3)))

json_obj = r.json(strict=False)
print "Response: "+str(json_obj['response'])
print "Elapsed: "+str(r.elapsed)
print "Time Taken: "+totalTimeTaken
添加注释作为答案,这样大多数人都不会阅读注释,因此更容易看到

将URL从
localhost
更改为
127.0.0.1
将开销减少近2秒,几乎为零



这意味着OP的DNS查找速度很慢,与
请求无关。post

您是如何测量服务器时间的?您使用
requests.post()
的方式没有任何无效之处,这里是您等待的所有服务器和数据传输时间。
requests
可以。可能还有很多其他原因:你的电脑速度慢,服务器速度慢,或者负载太大…@MartijnPieters,ForceBru:我不同意。我可以完全控制服务器和客户端。使用Chrome对资源执行GET请求,我可以看到服务器立即响应。但是对于请求,在服务器看到请求之前会有4秒的延迟,然后响应几乎是立即的。此外,使用设置为1秒的timeout参数进一步说明整个事务需要4.4秒,但请求没有超时。因此除数据检索外,其他地方的速度也会减慢。FWIW服务器响应时间为@xobes:对不起,您与这个问题有什么关系?我从未在
请求中看到过这种延迟,这种延迟似乎是您的设置所独有的。Chrome是否设置为使用代理?名称服务器的查找速度有多快?服务器上是否安装了任何可能会拖累特定用户代理的东西?@akmalhakimi1991谢谢,我终于发现了问题,也许这是windows操作系统(win10)上的请求库错误(?),如果我像“”这样配置url,
create\u connection
需要将近2000ms才能获得连接,但我像“”那样配置url,连接只需4毫秒。