【发布时间】:2017-05-07 15:39:50
【问题描述】:
出于测试目的,我想在浏览器中看到臭名昭著的错误net::ERR CONTENT LENGTH MISMATCH。但问题是我不知道怎么做。天真地尝试传递错误的Content-Length 似乎不起作用 - 所有客户端都只是截断内容(顺便说一句 - 这是一些成熟的、RFC 记录的行为吗?)。
您可以尝试以下代码:
var express = require('express');
var app = express();
app.get('/ping', function (req, res) {
res.set({
'Content-Length': 7,
});
// don't use res.send,
//it will ignore explicitly set Content-Length in favor of the right one
res.write('ABCDEFGHIJKLMNOP');
res.end();
})
app.listen(3000, function () {
console.log('http://127.0.0.1:3000');
});
minimal python server 也是如此。
我也有一个疯狂的想法,可能是express 会在设置内容长度时截断响应,但tcpdump 清楚地表明在客户端收到了整个正文。
【问题讨论】:
-
你为什么想看到错误?
-
@mscdex 用于测试目的,正是出于人们有时希望看到 4xx 和 5xx http 错误的原因。
-
如果要触发该错误,请将内容长度值设置为大于实际内容并在
res.end()之后调用req.destroy()。 -
@robertklep 太棒了,确实有效,你为什么不留下答案让我接受?
标签: node.js google-chrome http express content-length