dポイントプレゼントキャンペーン実施中!

こんにちは、yakatoと申します。

現在、Servletから他のURLにアクセスし、送信したRequestのHEAD情報と受信したResponseのHEAD情報と受信本文のログを保存しようとしています。

今の所、HttpURLConnectionクラスを使用しているのですが、送受信情報がクラスに隠蔽されてしまっているようで、以下のように送信している電文そのものを表示する事が出来ません。

GET http://*********.com/*****.htm HTTP/1.1 \r\n
Host: *********.com \r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) \r\n
    .
    .
    .
\r\n

このような形式で送信Requestと受信Responseを扱う方法をご存知でしたらご教授下さい。
よろしくお願い致します。

A 回答 (1件)

ちょっと自信がないのですが、HttpURLConnectionではResponseは取れるのですが、Requestが取れません(やり方が悪いのかもしれませんが)。


Responseのやり方は、getHeaderFieldKeyとgetHeaderFieldで取れました。しかし、getRequestPropertiesでRequestが取れると思ったのですが、取れませんでした。

これだと解決できないので、Jakarta Commons HttpClientを使うことはできますか?
コードの断片を載せますので、参考にしてください。
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost(hostName, port, schemeName);
HttpMethodBase method = new GetMethod(pageName);
client.executeMethod(method);
System.out.println("----------");
Header[] reqs = method.getRequestHeaders();
for (int i=0; i<reqs.length; i++) {
System.out.print(reqs[i].toString());
}
System.out.println("----------");
Header[] resps = method.getResponseHeaders();
for (int i=0; i<resps.length; i++) {
System.out.print(resps[i].toString());
}
System.out.println("----------");

参考URL:http://jakarta.jp/commons/httpclient/
    • good
    • 0
この回答へのお礼

ありがとうございます。
お返事遅くなってすみません。

ご教授頂いたコードを実行した所、Request・Response共に取得する事が出来ました。

HeaderやQueryStringの扱いもHttpURLConnectionと比べて使いやすいので利用しようと思います。

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

お礼日時:2005/03/11 13:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!