【问题标题】:Using Python 3.9.1 and requests 2.25.1 a local connection to a Mongoose HTTP server takes 2 seconds使用 Python 3.9.1 和请求 2.25.1 到 Mongoose HTTP 服务器的本地连接需要 2 秒
【发布时间】:2023-02-15 08:19:23
【问题描述】:

我正在使用 Python、Java 和 NodeJS 编写一个小的 REST API 客户端。 服务器是使用 Mongoose HTTP 服务器编写的。

使用 Java 和 NodeJS,每个请求只需要几毫秒,但使用 Python,每个请求需要 2 秒。

我通过直接使用 urllib 确认这不是请求问题。 每个请求也需要 2 秒。

我也试过“连接”“关闭”,没有变化......

有什么想法为什么使用 Python 请求需要 2 秒,而使用 Java 和 NodeJS 则不需要?

我的代码:

import json
from urllib import request
from datetime import datetime

url = "http://localhost:8080/api"

req = request.Request(url, method="POST")
req.add_header('Content-Type', 'application/json')
req.add_header("Connection", "Close")

myData = {
            "schema": "jsonCommand.org/v1",
            "requestId": 1,
            "api": "admin",
            "apiVersion": "1.0",
            "action": "pingSession"
        }

data = json.dumps(myData)
data = data.encode()

for i in range(0, 10):
    now = datetime.now()
    print('Current DateTime:', now)
    with request.urlopen(req, data=data) as response:
        body = response.read()
        print(body)

【问题讨论】:

  • 更新:在请求中添加 , timeout=0.1 使其变快......这是怎么回事?

标签: python python-requests mongoose-web-server


【解决方案1】:

您很可能没有使用 mg_http_reply() API。解决方法:使用它。原因:您的服务器未设置内容长度和/或响应结束标记。详见https://mongoose.ws/tutorials/http-server/#set-content-length

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    相关资源
    最近更新 更多