HTTPリクエストの送信
JavaアプリケーションにおけるHTTP通信では、標準ライブラリのHttpURLConnectionクラスが広く利用されます。以下はGETリクエストを送信し、レスポンスデータを取得する実装例です。
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.net.URL;
import java.net.HttpURLConnection;
public class HttpRequestHandler {
public static void executeGetRequest() {
try {
URL apiEndpoint = new URL("https://jsonplaceholder.typicode.com/posts/1");
HttpURLConnection connection = (HttpURLConnection) apiEndpoint.openConnection();
connection.setRequestMethod("GET");
StringBuilder responseData = new StringBuilder();
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()))) {
String line;
while ((line = reader.readLine()) != null) {
responseData.append(line);
}
}
System.out.println("レスポンス内容: " + responseData.toString());
connection.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
JSONレスポンスの解析処理
HTTPレスポンスとしてJSON形式のデータを受信した場合、Gsonライブラリを用いてJavaオブジェクトへの変換が可能です。以下はその実装例です。
import com.google.gson.Gson;
class BlogArticle {
int authorId;
int articleId;
String headline;
String content;
}
public class JsonResponseParser {
public static void main(String[] args) {
try {
URL apiUrl = new URL("https://jsonplaceholder.typicode.com/posts/1");
HttpURLConnection httpConnection = (HttpURLConnection) apiUrl.openConnection();
httpConnection.setRequestMethod("GET");
StringBuilder jsonResponse = new StringBuilder();
try (BufferedReader responseReader = new BufferedReader(
new InputStreamReader(httpConnection.getInputStream()))) {
String responseLine;
while ((responseLine = responseReader.readLine()) != null) {
jsonResponse.append(responseLine);
}
}
Gson gsonConverter = new Gson();
BlogArticle article = gsonConverter.fromJson(jsonResponse.toString(), BlogArticle.class);
System.out.println("記事タイトル: " + article.headline);
httpConnection.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
この実装では、HTTP接続から取得したJSON文字列をGsonライブラリで解析し、定義したBlogArticleクラスのインスタンスへマッピングしています。これにより、タイプセーフな形でレスポンスデータにアクセスできます。