相关疑难解决方法(0)

如何从数据事件中取消HTTP上传?

鉴于此简单的网络服务器代码:

console.log('starting');
var server = require('http').createServer();

server.on('connection',function(socket){console.log('*server/connection');});
server.on(
    'request',
    function(request, response){
        console.log('*server/request');
        request.on(
            'data',
            function(chunk){
                console.log('*request/data');
                // <!> How do I abort next data calls from here?
            }
        );
        request.on(
            'readable',
            function(chunk){
                console.log('*request/readable');
                // <!> How do I abort next readable calls from here?
            }
        );
        request.on(
            'end',
            function(){
                console.log('*request/end');
                response.writeHead(200,"OK");
                response.write('Hello');
                response.end();
            }
        );
        request.on('close',function(){ console.log('*request/close'); } );
        request.on('error',function(){ console.log('*request/error'); } );
    }
);
server.on('close',function(){console.log('server/close');});
server.on('checkContinue',function(request, response){console.log('*server/checkContinue');});
server.on('connect',function(request, socket, head){console.log('*server/connect');});
server.on('upgrade',function(request, socket, head){console.log('*server/upgrade');});
server.on('clientError',function(exception, socket){console.log('*server/clientError');});

server.listen(8080);
console.log('started');
Run Code Online (Sandbox Code Playgroud)

当提交POST或FILE时,我的on数据功能会被触发一次或多次.有时候(就像发送了一个可怕的大文件)我想在数据事件上取消它并触发用户的on …

node.js

17
推荐指数
1
解决办法
7855
查看次数

Python - 如果服务器在 PUT 完成之前回答,则 HTTP 模块无法解析响应

我正在使用requests(它使用urllib3引擎盖下的 Python http 模块)库从 Python 脚本上传文件。我的后端首先检查请求的标头,如果它不符合所需的先决条件,它会立即停止请求并以有效的 400 响应进行响应。

这种行为在 Postman 或 Curl 中运行良好;即客户端能够解析 400 响应,即使它没有完成上传并且服务器过早地响应。但是,在 Python 中使用requests/执行此操作时urllib3,库无法处理后端响应:

Traceback (most recent call last):
  File "C:\Users\Neumann\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\urllib3\connectionpool.py", line 670, in urlopen
    httplib_response = self._make_request(
  File "C:\Users\Neumann\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\urllib3\connectionpool.py", line 392, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\http\client.py", line 1255, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\http\client.py", line 1301, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\http\client.py", line 1250, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "C:\Program …
Run Code Online (Sandbox Code Playgroud)

python http urllib3 python-3.x python-requests

9
推荐指数
1
解决办法
451
查看次数

我可以在完全读取 HTTP 请求之前发送 HTTP 响应吗?

我可以在完全读取 HTTP 请求之前发送 HTTP 响应吗?

例如,如果用户 POST 大文件 - 超出大小限制或服务发送错误的标头,我们不需要处理其余数据并使用 HTTP 错误代码重放?

更新我终于发现这个问题已经被问过:

这是可能的,但浏览器实现是“损坏的” - 没有考虑到此类事件。

w3c tcp http

5
推荐指数
1
解决办法
872
查看次数

HTTP 是否允许服务器在收到整个正文之前发送其响应?

在HTTP/1.1标准中,是否明确允许或禁止服务器在收到所有请求数据之前发送响应?

举个例子,当使用 POST 请求上传大量数据时,我可以想象服务器在收到请求的标头后但在收到整个正文之前返回“202 ACCEPTED”响应。合法还是不合法?这是野外存在的东西吗?

与服务器在收到整个请求之前发送 HTTP 响应是否可以接受密切相关?,但那里的响应似乎侧重于处理“错误”(可能是 4xx、5xx),而不是“成功”(2xx)

http

5
推荐指数
1
解决办法
226
查看次数

标签 统计

http ×3

node.js ×1

python ×1

python-3.x ×1

python-requests ×1

tcp ×1

urllib3 ×1

w3c ×1