重复的http发布请求被延迟

马丁

我正在尝试通过邮寄请求将.zip文件(〜180KB)作为八位字节流上传。以下代码按预期执行2-3次。文件被上传,并且得到了预期的响应。

但是,当第3/4次发布数据时,请求在几分钟左右的时间内都不会显示在上传服务器上。等待一会儿后,我可以正常执行另外2-3个请求,然后再次延迟。

两台服务器都在本地主机(OS X)上运行节点(v0.10.31)+ express。

var options = {
    host : interface.host,
    port : interface.port,
    path : interface.path + '/deployResources',
    method : 'POST',
    headers : {
        'Content-Type': 'application/octet-stream',
        'Content-Length': byteLength,
        'Content-disposition': 'attachment; filename=resources.zip'
    }
};
var stream = fs.createReadStream(zipPath);
var req = http.request(options, function (res) {    
    // Response delayed on 3rd/4th run
    console.log(res.statusCode);    
});

stream.on('data', function (data) {
    req.write(data);
});

stream.on('end', function () {
    console.log('STREAM END');
    stream.close();
    req.end();
});

从节点v0.10.32更新日志:

http:在TE HEAD响应中不发送0 \ r \ n \ r \ n(Fedor Indutny)

这可能是个问题吗?

谢谢。

mscdex

有时使用Http.Agent会导致类似这样的问题。遇到这种情况时,可以agent: false在请求选项中进行设置,以使请求始终获得全新的网络连接。

如果您在短时间内发出许多请求,那么执行此操作并非总是可取的,因为这可能会导致您耗尽可用的文件描述符(这是Http.Agent为防止发生这种情况而设计的)。在这种情况下,您可以尝试仅增加agent.maxSockets

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何延迟http请求?

来自分类Dev

Http发布请求

来自分类Dev

Spring Boot发布HTTP请求

来自分类Dev

异步Http发布请求无效

来自分类Dev

对HTTP发布请求采取措施

来自分类Dev

Spring Boot发布HTTP请求

来自分类Dev

Android Java Http请求发布

来自分类Dev

Angular-如何延迟HTTP请求

来自分类Dev

延迟节点中传入HTTP请求的处理

来自分类Dev

如何防止重复的http请求?

来自分类Dev

nodejs http发布请求引发TypeError

来自分类Dev

循环发送多个http发布请求

来自分类Dev

Golang:同步功能调用http发布请求

来自分类Dev

来自GitHub Pages的HTTP“发布”请求失败

来自分类Dev

错误方法发布(HTTP请求)Flutter

来自分类Dev

Http发布请求Python失败。(必填)

来自分类Dev

Windows Phone 8的XML HTTP发布请求

来自分类Dev

iPhone http发布请求字段和值

来自分类Dev

Soap Http发布请求给出IOException

来自分类Dev

在指令前执行http发布请求

来自分类Dev

循环发送多个http发布请求

来自分类Dev

Swift中的Alamofire HTTP发布请求

来自分类Dev

由于CORS,HTTP发布请求失败

来自分类Dev

如何在HTTP发布请求正文中发布参数?

来自分类Dev

避免使用AFNetworking重复HTTP请求

来自分类Dev

AngularJS如何防止重复的http请求?

来自分类Dev

iOS Swift 停止重复的 HTTP 请求

来自分类Dev

提交不执行HTTP发布,而是执行HTTP获取/请求

来自分类Dev

提交不执行HTTP发布,而是执行HTTP获取/请求