まず、私はこれが学校プロジェクトだと認めますので、実際のコードではなく方向性の詳細が必要です。また、私はjava.net.HTTPURLConnectionクラスとjava.net.URLクラスを使用して手助けをすることはできません。JavaでHTTPメッセージを読む
Ok ... JavaでHTTPサーバーを作成していますが、HTTPメッセージの読み込みに問題があります。私は、すでに動作している永続的な接続(HTTP/1.1とConnection:closeを使用しない場合)を許可する必要があります。しかし、永続性のために、複数の要求がパイプラインを下ってくる可能性があります。
私は、メッセージ本文の長さをバイト単位で判断するためにContent-Lengthヘッダーを使用できます。その後、次のメッセージがパイプに表示されます。
私の質問...
- は、私は、charのバイトまたはcharでメッセージバイトで読むべきか、私は行ずつで読むことができますか?
- メッセージ本体をバイト形式で保存するか、String ok(HTMLは問題ないとは思いますが、画像などは改行する必要があります。文字列?)
- 私は行単位で読むことができるスキャナがありますか?次に、メッセージ本体にヒットしたときにgetBytes(contentLength)を呼び出すと、それは私に体を与えますか?
もう一度おねがいします!
編集:チャンクデータまたは圧縮データをサポートする必要はありません。
ポストに感謝します。私は他人が何を言わなければならないかを見るでしょう。私はちょうどチャンクされたエンコードについて心配する必要はないことに注意するように変更しました(言及するのを忘れてしまった)。 – mikesir87
Ok ...どのようなヘッダーもまだ解析できなかった場合、どのくらいの長さのコンテンツがあるのか分かりますか? – mikesir87
@ mikesir87:まあ、良い点;-)。この時点で、あなたは本当に行を読む必要があります。最も簡単な方法は、ヘッダーセクションを終了するシーケンス '\ r'、 '\ n'、 '\ r'、\ 'n'を認識するまで、文字を読み取ることです。これまで、すべての文字をStringBufferに追加しました。その後、ヘッダーがあり、バイト配列を解析して読み続けることができます。この方法はパフォーマンスにはあまり適していませんが、実装は簡単です。 – yankee