Newer
Older
KisoJikkenNWP / src / main / java / istlab / KisoJikken / PostHTTP.java
@motoki miura motoki miura on 25 Sep 2022 2 KB post
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();
    }
}