Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

HTTPClientによるUpload

HTTPプロトコルを使ってP2P通信を行うプログラムを作りたいと考えています。

1.MultipartPostMethodが非推奨になっているので
MultipartPostMethod.addParameter("upload",filename,new File(filename));
をPostMethodで実現したいと考えています。サンプルが見つからず困っているのですが,どのようにすればよいのでしょうか?



2.また,上でアップロードしたデータを受け取るHTTPサーバプログラムを書きたいと思っています。サーブレットは使いたくないです。com.sun.net.httpserverを使えば実現できるのではないかと考え,リクエストを表示するメソッドを書いてみました。

  protected void dispAllRequest(HttpExchange exchange) throws IOException {
    System.out.println("/*** Request Method ***/");
    System.out.println("     " + exchange.getProtocol() + " "
        + exchange.getRequestMethod() + " "
        + exchange.getRequestURI());
    System.out.println("/*** Header ***/");
    Headers header = exchange.getRequestHeaders();
    for(String key : header.keySet())
      for(String value : header.get(key))
        System.out.println("     "+key + " = "+value);
    System.out.println("/*** Body ***/");
    DataInputStream dis = new DataInputStream(exchange.getRequestBody());
    byte[] buf = new byte[1024];
    while(dis.read(buf,0,buf.length) != -1)
      System.out.println(new String(buf));

    System.out.println("/*** else ***/");
    System.out.println("     "+exchange.getRemoteAddress());

  }

出力を見て Content-type が multipart/form-data でなければなんとかできそうだと思いました。問題は multipart/form-data のときですが,なにか参考になるサンプルはないでしょうか?



3.http://www.slayers.nu/~kumasaka/Gyoumu/HTTPClient/docj/urlcon_vs_httpclient.htmlによるとHTTPClientは任意のメソッドが使えるとあるのですが,自作のメソッドに設定するにはどうしたらよいのでしょうか?

4

回答

84812

閲覧

4件の回答

評価

0

1に関しては変わりにPostMethodを使えってAPIに書いてありました。


評価

0

基本的にやることはあんまり変わらない(Stringの連結という意味では)けど。
commonsのFileUploadのソースを解析すれば。

評価

0

>>コロさん
私もそれを見て『PostMethodで実現したい』と考えました。そしてこれを見つけました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36815&forum=12

>>$さん
ネット上を探し回ってもいいサンプルが見つからないので解析してみようと思います。

評価

0

どうも自分の実力では解読できそうにないので別の方法を考えることにしました。

ありがとうございました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。