NodeJsからの要求を、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/0.9レスポンスとの区別をする方法がありません。 /1.1 200 OK \ r \ n "
0
Linuxを使用していると仮定すると、カールした子プロセスを使用することになります。 次のコード例は、古い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. emojisのSails.js/Nodejs/Jsonのサポート
- 2. NodeJSネイティブhttp2サポート
- 3. Nodejs HTTP/1.1パイプラインのサポート
- 4. HTTPSをサポートするnodejsプロキシサーバ
- 5. nodejsのFirebase SDK v3は `signInWithCustomToken(token)`をサポートしていません
- 6. ダイナミックページはExpress(NodeJs)の静的ファイルをサポートしていません
- 7. WebStorm 2016でNodeJSがサポートされています
- 8. なぜWeb Audio APIがnodejsでサポートされていないのですか?
- 9. NodejsとSocket.ioでサポートできるユーザー数はいくつですか?
- 10. nodejsでのセッション
- 11. NodejsはECMAScript2015をサポートしていますか?
- 12. nodejs gmail apiは約束をサポートしていません
- 13. nodejsはいつes6スタイルモジュール(インポート/エクスポート)をサポートしますか?
- 14. なぜNodejsはインポートとエクスポートをサポートしていませんか?
- 15. NodeJSは "インポート"スタイルモジュールの読み込みをサポートしていますか?
- 16. NodeJSとInformix DBで使うのに最も良いORMフレームワークは何ですか?トランザクション管理のサポート
- 17. Mac OSでの通知ハブ向けの開発 - NodeJS/.Netコアのサポートは廃止されました
- 18. NodeJSでのコールバックの理解
- 19. NodeJSでのアサートの目的
- 20. NodeJSでのデータベースコードの構造
- 21. NodeJS Serverでのロードバランシングをサポートするにはどこのデータベースを保持しますか?
- 22. NodeJSのsqliteクエリ結果の一時停止をサポートするパッケージは何ですか?
- 23. EclipseでのGSPサポート
- 24. MonoでのWCFサポート
- 25. vimでのRubyサポート
- 26. AndroidでのSVGサポート
- 27. ドミノデザイナーでのCVSサポート
- 28. PHPでのGDサポート
- 29. flex linuxでのサポート
- 30. J2MEでのJDBCサポート
あなたは正しいですが、プロトコルバージョンはなく、応答データのみです。それをハックする方法はありますか?この 'Parse Error'を取得しないようにするには? 'net'モジュールを使ったTCP? – notgiorgi
プレーンなTCPソケットを直接使用することができます。正しくフォーマットされたHTTP/0.9リクエストを送信してください。 – mscdex
その上のリソースは?私は正しいHTTP/0.9リクエストをどうやって作るのですか – notgiorgi