我有一个小程序需要使用node.js从网站中获取favicon。这在大多数情况下都有效,但是在apple.com上,我遇到了无法理解或修复的错误:
var sys= require('sys');
var fs= require('fs');
var http = require('http');
var rurl = http.createClient(80, 'apple.com');
var requestUrl = 'http://www.apple.com/favicon.ico';
var request = rurl.request('GET', requestUrl, {"Content-Type": "image/x-icon", "host" : "apple.com" });
request.end();
request.addListener('response', function (response)
{
response.setEncoding('binary');
var body = '';
response.addListener('data', function (chunk) {
body += chunk;
});
response.addListener("end", function() {
});
});
当我发送这个请求时,响应如下:
<head><body> This object may be found <a HREF="http://www.apple.com/favicon.ico">here</a> </body>
因此,我已经以客户端创建步骤中主机名的变体和url请求为“www.apple.com”的方式修改了上述代码,但通常我只会从节点中获得以下错误:
node.js:63
throw e;
^
Error: Parse Error
at Client.ondata (http:901:22)
at IOWatcher.callback (net:494:29)
at node.js:769:9
此外,我不想使用谷歌服务来获取站点图标。