问题标签 [basehttprequesthandler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2612 浏览

python - python3 HTTPServer/BaseHTTPRequestHandler 输出流问题

我遇到了内置 python3 http.server 模块的问题。具体来说,就是 BaseHTTPRequestHandler 类中的 wfile.write() 方法。

我正在尝试使用 GET 请求将预定义为字符串的 html 表单发送给客户端。到客户端的输出流被编码为类似字节的对象并传输到客户端。

但是,在客户端启动服务器时,它不会呈现为 html 表单。它最终被包装到<pre>标签中并显示为预格式化的文本。

这是代码:

0 投票
1 回答
1198 浏览

python-2.7 - python开发的web服务器,如何传输图片文件,可以在web浏览器中显示?

我想用python开发一个简单的web服务器来处理一些简单的http请求。我已经学习了如何响应请求,例如传输 html 页面或传输其他文件。当我传输图像文件时,客户端使用浏览器获取文件,网址如下所示:

我设置了'Content-Type = application/x-png'。但是浏览器直接下载文件,并不能在浏览器中显示。不像下图

它可以显示在浏览器中。如何在浏览器中显示图像?有人能帮我吗?

我知道我可以将图像文件编码为 html 页面来修复它。代码如下:

但我知道一定有另一种方式,我看到它只是使用的 URL( https://www.baidu.com/ )的源代码

与我的页面不同:

0 投票
0 回答
48 浏览

python - python的BaseHTTPHandler的可扩展性?

我使用 python 的标准 API (BaseHTTPServer.BaseHTTPRequestHander) 作为后端来处理用户的 HTTP 请求。现在,假设平均而言,我网站上的用户数量约为 150,那么坚持使用这个 python 的 API 是否安全?

0 投票
1 回答
696 浏览

python - Python:在 GET 请求后重置 BaseHTTPRequestHandler 的实例

我有一个由班级python BaseHTTPRequestHandler调用的HTTPServer班级。基本上BaseHTTPRequestHandler只是运行一个基本算法,然后响应一个Get请求。问题是,每次我发出Get请求时,我都会得到正确的响应,但所有收集到的数据BaseHTTPRequestHandler都会被重置,就好像每次将请求发送到HTTPServer它都会创建一个新的BaseHTTPRequestHandler. 我在网上找不到任何能真正解释幕后发生的事情的东西。我附上了我的代码的简化版本。任何帮助或解释将不胜感激。

在任何人建议创建类或全局变量之前,我正在使用一个线程一次创建该类的多个实例,这样做会使每个线程上的所有实例共享并替换彼此的数据。

代码(复制和粘贴时缩进关闭)

BaseHTTPRequestHandler

这个简化版本只是跟踪已发生的警报数量。问题是当我调用Get请求时计数总是重置为 0,就好像类的实例被重置一样。

HTTP服务器

主要的

此类创建HTTPServer并附加handler

0 投票
1 回答
237 浏览

python - python 3.6 BaseHTTPRequestHandler

我正在尝试制作服务器程序员。代码如下所示:

问题是如果我使用 self.wfile.write(f.read()) 而不是 self.wfile.write(a),则根本没有响应。这是为什么?

0 投票
1 回答
186 浏览

python - 通过 Qt 发送 PUT 请求时错误的请求类型 PUT,适用于 curl

我已经子类化BaseHTTPRequestHandler并实现了do_GET(),do_POST()do_PUT().

我认为一切正常,直到我对我的 Qt 应用程序进行测试。GET 请求有效,服务器发送一个 XML 文档,其中包含应用程序处理的一些数据。POST 请求也有效,用于通过 REST 生成测试用例。

至于 PUT,事情看起来很奇怪。

这是服务器端的 PUT 处理程序:

在我的 Qt 应用程序中,我有一个名为 的类ReportPublisher,它从它连接到的所有设备(通过 MQTT)获取一些报告,将报告聚合成一个单一的报告并将其发送到服务器,服务器将其记录在一个文件中:

我必须诚实。我从来没有在 Qt 中做过 PUT 请求,到目前为止我所做的只是 GET 请求,所以上面的代码中可能存在一些非常基本但很容易发现的错误。

服务器接收到的数据如下所示:

如果我curl这样使用

其中192.168.120.61:8090是 IP 地址和服务器所在/侦听传入请求的端口我没有问题。

但是,对于来自我的 Qt 应用程序的数据,我得到了

在我的日志中(192.168.120.172是运行我的软件的系统的 IP 地址。

根据我稀缺的知识,代码 400表示语法无效,这可能是由于以下两个原因(至少我现在能想到的):

  • 格式错误的数据(无效的 XML、JSON 等)
  • 数据编码不正确,这基本上等同于格式错误的数据,但来自不同的来源。

我尝试将生成的 XML 文档转换为QByteArray使用QDomDocument::toByteArray(int i). 我也尝试过(如您在代码中看到的那样)将文档转换为QStringUTF-8,然后再转换为 UTF-8 QByteArray,但我无法让我的服务器处理数据。

更奇怪的是(如您在我do_PUT()BaseHTTPRequestHandler.

0 投票
0 回答
322 浏览

python - BaseHTTPRequestHandler Python 中的变量

我正在使用 Python 和 MS Bot Builder SDK for Python 创建一个聊天机器人。该机器人是使用处理程序的 HTTPServer。我想要的是帮助我跟踪对话的变量,例如消息计数器。但我无法让它工作,每次机器人收到一个请求(我发送一些东西),就像另一个处理程序被创建,因为消息的数量总是 1。我不确定每个人都在调用什么要求。

这是(重要的)代码:

如果输入消息'a' 4 次,我得到的是'(1)你说:a' 4 次。我尝试覆盖 BaseHTTPRequestHandler 的 init 方法,但没有奏效。

对于那些知道的人:问题在于 Python SDK 我们没有像 Node.js 中那样的瀑布对话框,或者我没有找到它是如何工作的,如果有人知道就告诉我,因为在这里我需要跟踪一个来自用户的很多东西,我需要变量。我真的很想使用 Python,因为我需要一些 ML 和 Python 中的其他模块。

谢谢您的帮助。

0 投票
1 回答
681 浏览

python - python BaseHTTPRequestHandler 和用于打开文件的本地 http 服务器目录

您好,我正在尝试使用 BaseHTTPRequestHandler 和本地 HTTP 服务器来操作文件。我无法获得绝对路径,真的很奇怪。我正在使用os.path.joinwith os.getcwd,它总是会返回这种目录:c:\\path.ext而不是c:\\user\\name\\blabla\\path.ext 我在 windows 上工作。

希望有人可以提供帮助,似乎服务器目录始终位于“C:”的基本根目录中。
谢谢

0 投票
1 回答
37 浏览

python - BaseHttpRequestHandler 设置全局值

我在这里遇到了一个小问题,这里的这个类:

正在调用这个:

所以我的问题是:如何在 requesthandler 中使用来自 Skyne 实例的 self.SkynetStatus 值?不知道如何加载它....希望你们知道我的意思;)

0 投票
0 回答
157 浏览

python - 在 http 请求处理程序中安全地阅读帖子正文?

您如何在 Python 3 的 HTTP 请求处理程序中安全地读取 HTTP POST 请求的帖子正文。+

我一直看到像这里这样的解决方案。

该解决方案仅在请求包含content-length标头并且该标头准确时才有效。很多时候content-length被排除在外并且不可靠,任何基于此的解决方案都是脆弱的。如何rfile通过尝试读取不存在的字节从缓冲区返回数据而不导致其挂起?