「Java8」HttpsURLConnection(HttpURLConnection)でJSON形式文字列をPOSTするサンプル
環境
JavaSE 1.8
Eclipse 4.14.0
構文
1.openConnection()
URLが参照するリモート・オブジェクトへの接続を表すURLConnectionインスタンスを返します。
URLが参照するリモート・オブジェクトへの接続を表すURLConnectionインスタンスを返します。
URLが参照するリモート・オブジェクトへの接続を表すURLConnectionインスタンスを返します。
2.setRequestMethod(String method)
URL要求のメソッドを次のどれかに設定します。GET POST HEAD OPTIONS PUT DELETE TRACEのうち、どれが有効であるかはプロトコルの制限によって決まります。
URL要求のメソッドを次のどれかに設定します。GET POST HEAD OPTIONS PUT DELETE TRACEのうち、どれが有効であるかはプロトコルの制限によって決まります。
URL要求のメソッドを次のどれかに設定します。GET POST HEAD OPTIONS PUT DELETE TRACEのうち、どれが有効であるかはプロトコルの制限によって決まります。
3.public void setRequestProperty(String key,String value)
パラメータ:
key - 要求を識別するキーワード(「Accept」など)。
value - キーワードに関連した値。
パラメータ:
key - 要求を識別するキーワード(「Accept」など)。
value - キーワードに関連した値。
パラメータ: key - 要求を識別するキーワード(「Accept」など)。 value - キーワードに関連した値。
4.public void setDoInput(boolean doinput)
このURLConnectionのdoInputフィールドの値を指定された値に設定します。
このURLConnectionのdoInputフィールドの値を指定された値に設定します。
このURLConnectionのdoInputフィールドの値を指定された値に設定します。
5.public void setDoOutput(boolean dooutput)
このURLConnectionのdoOutputフィールドの値を指定された値に設定します。
このURLConnectionのdoOutputフィールドの値を指定された値に設定します。
このURLConnectionのdoOutputフィールドの値を指定された値に設定します。
6.public OutputStream getOutputStream()throws IOException
この接続に書込みを行う出力ストリームを返します。
この接続に書込みを行う出力ストリームを返します。
この接続に書込みを行う出力ストリームを返します。
7.public int getResponseCode()throws IOException
HTTP応答メッセージからステータス・コードを取得します。
HTTP応答メッセージからステータス・コードを取得します。
HTTP応答メッセージからステータス・コードを取得します。
使用例
public String execute() throws IOException{
// HTTP(https)URL
String strUrl = "xxx";
// json形式の文字列
String strJson = "xxx";
//エンコーディングの宣言
String charSet = "UTF-8";
// 接続オブジェクトを生成
URL url = new URL(strUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//HTTPのメソッドをPOSTに設定
conn.setRequestMethod("POST");
//リクエストボディへの書き込みを許可
conn.setDoInput(true);
//レスポンスボディの取得を許可
conn.setDoOutput(true);
//リクエスト形式をJsonに指定
conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
// 接続
conn.connect();
// リクエスとボディに書き込みを行う
PrintStream ps = new PrintStream(conn.getOutputStream());
ps.print(strJson);
ps.close();
// レスポンスを受け取る
String responseCd = String.valueof(conn.getResponseCode());
if (responsCd != 200) {
//処理コード
}
//HttpURLConnectionからInputStreamを取得
BufferedReader bufferferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream(), charSet));
StringBuilder sb = new StringBuilder();
String str = null;
String result =null;
while ((str = ufferedReader.readLine()) != null) {
sb.append(str);
}
result = sb.toString();
// InputStreamを閉じる
BufferedReader.close();
//結果を返す
return result;
}
}
public String execute() throws IOException{
// HTTP(https)URL
String strUrl = "xxx";
// json形式の文字列
String strJson = "xxx";
//エンコーディングの宣言
String charSet = "UTF-8";
// 接続オブジェクトを生成
URL url = new URL(strUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//HTTPのメソッドをPOSTに設定
conn.setRequestMethod("POST");
//リクエストボディへの書き込みを許可
conn.setDoInput(true);
//レスポンスボディの取得を許可
conn.setDoOutput(true);
//リクエスト形式をJsonに指定
conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
// 接続
conn.connect();
// リクエスとボディに書き込みを行う
PrintStream ps = new PrintStream(conn.getOutputStream());
ps.print(strJson);
ps.close();
// レスポンスを受け取る
String responseCd = String.valueof(conn.getResponseCode());
if (responsCd != 200) {
//処理コード
}
//HttpURLConnectionからInputStreamを取得
BufferedReader bufferferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream(), charSet));
StringBuilder sb = new StringBuilder();
String str = null;
String result =null;
while ((str = ufferedReader.readLine()) != null) {
sb.append(str);
}
result = sb.toString();
// InputStreamを閉じる
BufferedReader.close();
//結果を返す
return result;
}
}
public String execute() throws IOException{ // HTTP(https)URL String strUrl = "xxx"; // json形式の文字列 String strJson = "xxx"; //エンコーディングの宣言 String charSet = "UTF-8"; // 接続オブジェクトを生成 URL url = new URL(strUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //HTTPのメソッドをPOSTに設定 conn.setRequestMethod("POST"); //リクエストボディへの書き込みを許可 conn.setDoInput(true); //レスポンスボディの取得を許可 conn.setDoOutput(true); //リクエスト形式をJsonに指定 conn.setRequestProperty("Content-Type", "application/json; charset=utf-8"); // 接続 conn.connect(); // リクエスとボディに書き込みを行う PrintStream ps = new PrintStream(conn.getOutputStream()); ps.print(strJson); ps.close(); // レスポンスを受け取る String responseCd = String.valueof(conn.getResponseCode()); if (responsCd != 200) { //処理コード } //HttpURLConnectionからInputStreamを取得 BufferedReader bufferferedReader = new BufferedReader(new InputStreamReader(conn.getInputStream(), charSet)); StringBuilder sb = new StringBuilder(); String str = null; String result =null; while ((str = ufferedReader.readLine()) != null) { sb.append(str); } result = sb.toString(); // InputStreamを閉じる BufferedReader.close(); //結果を返す return result; } }
処理の流れについて説明
1).HttpURLConnectionで接続するための設定
2).HttpURLConnection接続確立
3).URLリクエストボディに書き込む
4).URLレスポンス結果を受け取る
5).Input/OutputStreamを閉じる
6).取得結果文字列を返す