我使用此代码:
var options = {
hostname: 'torcache.net',
path: '/torrent/4C1E01E1E7AE19082F4BAC9C3C82B5B2CD0EEA23.torrent',
port: 80,
method: 'GET'
};
http.request(options, function (res) {
var chunks = [];
res.on('data', function (chunk) {
chunks.push(chunk);
});
res.on('end', function () {
if (res.statusCode !== 200) {
callback(res.statusCode);
return;
}
//...
});
}).on('error', function (err) {
callback(err);
}).end();
statusCode是200,但打开网址(http://torcache.net/torrent/4C1E01E1E7AE19082F4BAC9C3C82B5B2CD0EEA23.torrent)是Chrome,statusCode是404.代码有什么问题?
更新
我发现是否使用这个选项:
{
hostname: 'torcache.net',
path: '/torrent/4C1E01E1E7AE19082F4BAC9C3C82B5B2CD0EEA23.torrent',
port: 80,
method: 'GET',
secureProtocol: 'SSLv3_method',
headers: {
'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'accept-language': 'en-US,en;q=0.8',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2',
'accept-encoding': 'gzip,deflate',
'referer': 'http://torcache.net' // !!!
}
}
当 headers ['referer'] 不为null时,res.statusCode是错误的。但我不知道为什么?
答案 0 :(得分:1)
请求确实以200返回。稍后将JavaScript重定向到404页面,Node不跟随。