package istlab.KisoJikken; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.HttpURLConnection; import java.net.URL; public class PostHTTP { public static String apiURL = "https://ss.istlab.info/xcps/kiso"; public String json; public PostHTTP(String j) { json = j; } // https://qiita.com/nururuv/items/b269af6ac5ac472ceab1 public String execute() throws IOException { // 1.接続するための設定をする // URL に対して openConnection メソッドを呼び出すし、接続オブジェクトを生成 URL url = new URL(apiURL); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // HttpURLConnectionの各種設定 // HTTPのメソッドをPOSTに設定 conn.setRequestMethod("POST"); // リクエストボディへの書き込みを許可 conn.setDoInput(true); // レスポンスボディの取得を許可 conn.setDoOutput(true); // リクエスト形式をJsonに指定 conn.setRequestProperty("Content-Type", "application/json; charset=utf-8"); // 2.接続を確立する conn.connect(); // 3.リクエスとボディに書き込みを行う // HttpURLConnectionからOutputStreamを取得し、json文字列を書き込む PrintStream ps = new PrintStream(conn.getOutputStream()); ps.print(json); ps.close(); // 4.レスポンスを受け取る // 正常終了時はHttpStatusCode 200が返ってくる if (conn.getResponseCode() != 200) { // エラー処理 return "Error: "+conn.getResponseCode(); } // HttpURLConnectionからInputStreamを取得し、読み出す BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); StringBuilder sb = new StringBuilder(); String line; while ((line = br.readLine()) != null) { sb.append(line); } // 5.InputStreamを閉じる br.close(); // 結果は呼び出し元に返しておく return sb.toString(); } }