我正在將請求從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