Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

JavaのHttpClientについて

$
0
0
JavaのHttpClientについて Java7でTLS1.2を使用するwebクライアントを作成している最中であり、 httpsで通信できているところまでは確認できたのですが、 使用されているTLSのバージョンの確認方法が分からない状況です。 そこで2点ほど質問させて下さい。 (1)HTTPヘッダのような感じでTLSのバージョンを取得する方法はありますでしょうか。もし、ない場合はプログラム以外の方法でも構いません。 (2)試しに下記を取得してみたのですが、SSL/TLSの通信路確立後に使用するhttpのバージョンという認識で合っていますでしょうか。 [ソースの「// HTTPヘッダを取得」の手前で実装] HttpMethodParams HMparam = getMethod.getParams(); System.out.println(HMparam.getVersion()); ソースは参考サイトのサンプルでURLを変更しただけになります。(finally以下は必要な気がした為、追加してます。) HttpClientのバージョンは3.1です。 Java初心者であり、恐縮ですが、ご回答の程よろしくお願い致します。 【ソース】 ======================================================================== import java.io.IOException; import java.io.InputStream; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.params.HttpMethodParams; public class HttpClientTest { public static void main(String[] args) { HttpClient httpClient = new HttpClient(new MultiThreadedHttpConnectionManager()); // タイムアウトを設定(ミリ秒) httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000); // GETメソッドでリクエスト送信 GetMethod getMethod = new GetMethod("https://www.yahoo.co.jp"); // リトライの設定 getMethod.getParams().setParameter( HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, true)); // 自動でリダイレクトを許容する(デフォルト) getMethod.setFollowRedirects(true); try { // HTTPステータスを取得 int resultCode = httpClient.executeMethod(getMethod); if (resultCode != HttpStatus.SC_OK && resultCode != HttpStatus.SC_MOVED_TEMPORARILY) { // TODO エラー処理 } // HTTPヘッダを取得 System.out.println(getMethod.getResponseHeader("Content-Type")); // HTTPボディを文字列で取得 System.out.println(getMethod.getResponseBodyAsString()); // InputStreamを取得 InputStream inStream = getMethod.getResponseBodyAsStream(); } catch (HttpException e) { // TODO エラー処理 e.printStackTrace(); } catch (IOException e) { // TODO エラー処理 e.printStackTrace(); }finally { getMethod.releaseConnection(); } } } ======================================================================== 【参考サイト】 http://yajiblog.blog101.fc2.com/?m&no=6

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>