我正在将请求从NodeJ发送到使用HTTP/0.9
的旧服务器。响应来,并引发错误:Parse Error
。在有关HTTP协议支持的文档中找不到任何内容。我做错了什么或者NodeJS不支持HTTP/0.9
?nodejs中的HTTP/0.9支持
1
A
回答
2
节点不支持HTTP/0.9不仅仅因为它很难再使用,而是因为真正的HTTP/0.9响应只是由响应数据组成。这意味着没有状态行指示响应的HTTP版本,所以无法区分HTTP/0.9响应和格式错误的HTTP/1.x响应,甚至是以字符串“HTTP开头的HTTP/0.9响应/1.1 200 OK \ r \ n“。
0
假设你使用linux,一种破解它的方法是使用curl子进程。 这是一个代码示例,应用于指向旧Shoutcast服务器的URL。
var URL = "http://streaming3.radiocat.net/;";
// This will fail because HTTP 0.9 is not supported by Node.
var http = require("http");
var url = require("url");
http.get(url.parse(URL), function (res) {
res.on("data", function(data) {
console.log(data);
});
});
// This will work
var cp = require('child_process');
var request = cp.spawn("curl", ["-L", URL], { stdio: ['pipe', 'pipe', process.stderr] });
request.stdout.on("data", function(data) {
console.log(data);
});
/* Detail of the http.get error:
events.js:182
throw er; // Unhandled 'error' event
^
Error: Parse Error
at Socket.socketOnData (_http_client.js:454:20)
at emitOne (events.js:115:13)
at Socket.emit (events.js:210:7)
at addChunk (_stream_readable.js:266:12)
at readableAddChunk (_stream_readable.js:253:11)
at Socket.Readable.push (_stream_readable.js:211:10)
at TCP.onread (net.js:585:20)
*/
相关问题
- 1. Nodejs HTTP/1.1管道支持
- 2. 不支持NodeJS Addon Unordered_map?
- 3. Sails.js/Nodejs/Json支持emojis
- 4. NodeJS扩展ASCII支持
- 5. 异步/等待nodejs支持?
- 6. Nodejs&Socket.io可以支持多少用户?
- 7. nodejs是否支持运行时依赖?
- 8. 动态页面不支持express中的静态文件(NodeJs)
- 9. 由DynamoDB支持的NodeJS lambda函数的输入验证
- 10. 当前或最受支持的NodeJS框架/ lib选项?
- 11. AngularJS路由服务器端支持(的NodeJS +快递)
- 12. nodejs的多种内容类型支持XML <-> JSON
- 13. NodeJS是否支持“导入”风格的模块加载?
- 14. 的NodeJS +快递+ OpenID支持重定向连接到根
- 15. 针对nodejs的Firebase SDK v3不支持`signInWithCustomToken(令牌)`
- 16. 要求的NodeJS模块不支持重定向某些URL
- 17. Nodejs处理不受支持的URL和请求类型
- 18. TransactionAttributeType支持| NOT支持
- 19. 支持iOS 7支持的[UIScreen mainScreen] .nativeScale?
- 20. OpenCV支持Android的硬件支持
- 21. 长期支持,以发展分支的支持分支
- 22. 在tomcat中是否存在支持salt的JDBCRealm的支持?
- 23. HTMLDOC中文支持
- 24. sequelize for NodeJS:是否支持这些功能?
- 25. NodeJS和HTTP客户端 - 是否支持Cookie?
- 26. NodeJS承诺与回调:是否有理由不支持两者?
- 27. 在部署到Heroku的NodeJS应用程序中不支持异步功能
- 28. 的Windows支持Java 6中
- 29. .net 2.0中的SSL支持
- 30. Symfony2中的scrypt支持
你说得对,没有协议版本,只有响应数据。有没有办法破解它?为了不接受这个'Parse Error'? TCP使用'net'模块? – notgiorgi
你可以直接使用纯TCP套接字,是的。只要确保您发送正确格式的HTTP/0.9请求。 – mscdex
这方面的资源?我的意思是如何形成正确的HTTP/0.9请求 – notgiorgi