2010-12-20 11 views
0

ファイルをサーバーにアップロードしてダウンロードすることについての譲渡があります。私はJava Socketsを使用してアップロード部分を処理しましたが、ダウンロードするのは苦労しています。私はparellelをダウンロードするためにRange:を使うべきです。私の要求では、Range:ヘッダーが必要です。しかし、私はそのHTTP GETリクエストでファイルをどのように受け取るのか分かりません。私が見たすべての例はファイルをアップロードすることでした。私はすでにそれをやりました。私は.exe、image、.pdf、何かをアップロードすることができます。私がそれらを(ブラウザで)ダウンロードすると、エラーはありません。あなたはダウンロードの部分で私を助けることができますか?私は本当にそれを得ていない例beacuseを私に与えることができますか?Javaソケットを使用してサーバーからファイルをダウンロードする方法は?

+0

これはHTTPの権利ですか? –

+0

はい。それはHTTPです。 – Ada

+0

誰かが私の任務を遂行するのを望んでいない、私はちょうどダウンロード部分を開始したい、私はそれを管理することができれば、私は自分自身で、うまくいけば、誰にも尋ねることなく、 – Ada

答えて

0

HTTP responseは、要求を送信したソケットと同じソケットから読み取る必要があります。出発点として、それを印刷してください。あなたがそれに慣れているときは、それを解析してください。ファイルがそこにあります。

+0

私はそれを読もうとしましたが、プログラムはちょうど終了しました。私は何か間違っています – Ada

+0

もしそうなら、コードを掲示してください(ここかpastebinのようなものです)。あなたのコードには何らかのエラーがあるに違いありませんが、コードを見ることなくそれが何であるかを知ることは難しいです。 –

0

価値はあなたが直接ソケットを使用するために、あなたの宿題がない場合ではない特にを伝える

...とにかく言って(IMO)にこれが直接あなたの質問に答えていませんが、それは、単純にあります、JavaでHTTPファイルのアップロードやダウンロードを行うためのより良い方法:

  • java.net.URL.openConnection()の使用「はhttp:」urlはあなたが要求にそう、PUT、POSTと、GETを作るために使用することができますHttpURLConnectionを与えますリモートサーバーに送信します。これは基本的なHTTPプロトコルの処理を行います。

  • ライブラリは同じことをしますが、より洗練された方法で、コンテンツ(フォームやMIMEマルチパートを含む)、接続と認証情報管理、プロキシとルート検索などのオプションに。

宿題演習の目的はあなたに、これらのクラスを使用して、リモートサーバーに話をするための実用的な方法を教えることであれば

は、ソケットレベルアップからのHTTPプロトコルのサブセットを実装しようとしているよりもはるかに実用的です。

(もちろん、目的あなたの現在のアプローチ正しいものになるだろう「線」レベル...であなたにHTTPプロトコルをより深く理解してもらうためにである可能性があります。)

+0

不幸にも、Socket以外のものは使用できません – Ada

0

ありがとうやったよ。私はバイト配列を使用し、入力ストリームを読み込んで、fileinputstreamとfileoutputstreamを使ってファイルに書き込みました。