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は任意のメソッドが使えるとあるのですが,自作のメソッドに設定するにはどうしたらよいのでしょうか?