Apache・Tomcat間のURL連携まとめ(4)
最後に、クライアントアプリを作って
「CL側に用意したクライアントアプリより構築したサーバに対してリクエスト(GET)を投げると、独自に設定されたヘッダ"X-Sample01"に値として"aaa"が設定されていること・HTTPステータスコード200が返却されることを確認する」
を確認する。
クライアントアプリのソースは以下の通り。
package cliant; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.Iterator; import java.util.List; import java.util.Map; public class Main { // (サーバ名)にはブラウザでアクセスした際と同じサーバ名を入れる private static final String SERVER_NAME = "http://(サーバ名)/echoservlet/200/"; // 例外は無視 public static void main(String[] args) throws Throwable{ URL url = new URL(SERVER_NAME); HttpURLConnection urlconn = (HttpURLConnection)url.openConnection(); urlconn.setRequestMethod("GET"); urlconn.setInstanceFollowRedirects(false); urlconn.setRequestProperty("Accept-Language", "ja;q=0.7,en;q=0.3"); urlconn.connect(); Map<String, List<String>> headers = urlconn.getHeaderFields(); Iterator<String> it = headers.keySet().iterator(); System.out.println("レスポンスヘッダ:"); while (it.hasNext()){ String key= (String)it.next(); System.out.println(" " + key + ": " + headers.get(key)); } System.out.println("レスポンスコード[" + urlconn.getResponseCode() + "] " + "レスポンスメッセージ[" + urlconn.getResponseMessage() + "]"); System.out.println("\n---- ボディ ----"); BufferedReader reader = new BufferedReader(new InputStreamReader(urlconn.getInputStream())); while (true){ String line = reader.readLine(); if ( line == null ){ break; } System.out.println(line); } reader.close(); urlconn.disconnect(); } }
【参考(ほぼ丸写し】
http://x68000.q-e-d.net/~68user/net/java-http-url-connection-1.html
実行結果は以下の通り。
============実行結果ここから============
レスポンスヘッダ:
Keep-Alive: [timeout=5, max=100]
null: [HTTP/1.1 200 OK]
X-Sample01: [aaa]
Connection: [Keep-Alive]
Content-Length: [0]
Date: [Mon, 28 Apr 2014 12:11:49 GMT]
Content-Type: [text/plain]
レスポンスコード[200] レスポンスメッセージ[OK]
-
-
-
- ボディ ----
-
-
============実行結果ここまで============
これでおもちゃ(のようなもの)ができたので、
次からは色々試せるはず。