AndroidでgetとPOST
Page content
こんな感じ
GET
public String getHistoryData(String key1) {
HttpURLConnection urlConnection = null;
InputStream inputStream = null;
String result = "";
String str = "";
try {
URL url = new URL("https://xxxxx.co.jp/test?key1=" + key1);
// 接続先URLへのコネクションを開く.まだ接続されていない
urlConnection = (HttpURLConnection) url.openConnection();
// 接続タイムアウトを設定
urlConnection.setConnectTimeout(10000);
// レスポンスデータの読み取りタイムアウトを設定
urlConnection.setReadTimeout(10000);
// ヘッダーにUser-Agentを設定
urlConnection.addRequestProperty("User-Agent", "Android");
// ヘッダーにAccept-Languageを設定
urlConnection.addRequestProperty("Accept-Language", Locale.getDefault().toString());
// HTTPメソッドを指定
urlConnection.setRequestMethod("GET");
//リクエストボディの送信を許可しない
urlConnection.setDoOutput(false);
//レスポンスボディの受信を許可する
urlConnection.setDoInput(true);
// 通信開始
urlConnection.connect();
// レスポンスコードを取得
int statusCode = urlConnection.getResponseCode();
// レスポンスコード200は通信に成功したことを表す
if (statusCode == 200) {
inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
// 1行ずつレスポンス結果を取得しstrに追記
result = bufferedReader.readLine();
while (result != null) {
str += result;
result = bufferedReader.readLine();
}
bufferedReader.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// レスポンス結果のJSONをString型で返す
return str;
}
POST
public String PostUserName(String key1, String key2) {
HttpURLConnection urlConnection = null;
InputStream inputStream = null;
String result = "";
String str = "";
try {
URL url = new URL("http://hpph;e.cp.jp"");
// 接続先URLへのコネクションを開く.まだ接続されていない
urlConnection = (HttpURLConnection) url.openConnection();
// 接続タイムアウトを設定
urlConnection.setConnectTimeout(10000);
// レスポンスデータの読み取りタイムアウトを設定
urlConnection.setReadTimeout(10000);
// ヘッダーにUser-Agentを設定
urlConnection.addRequestProperty("User-Agent", "Android");
// ヘッダーにAccept-Languageを設定
urlConnection.addRequestProperty("Accept-Language", Locale.getDefault().toString());
//ヘッダーにContent-Typeを設定する
urlConnection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// HTTPメソッドを指定
urlConnection.setRequestMethod("POST");
urlConnection.setUseCaches(false);
//リクエストボディの送信を許可しない
urlConnection.setDoOutput(true);
//レスポンスボディの受信を許可する
urlConnection.setDoInput(true);
// 通信開始
urlConnection.connect();
//ステップ5:リクエストボディの書き出しを行う。
OutputStream outputStream = urlConnection.getOutputStream();
Map<String, String> keyValues = new HashMap<>();
keyValues.put("key1", key1);
keyValues.put("key2", key2);
if (keyValues.size() > 0) {
Uri.Builder builder = new Uri.Builder();
//HashMapを[key=value]形式の文字列に変換する
for (String key : keyValues.keySet()) {
//[key=value]形式の文字列に変換する。
builder.appendQueryParameter(key, keyValues.get(key));
}
//[key=value&key=value…]形式の文字列に変換する。
String join = builder.build().getEncodedQuery();
PrintStream ps = new PrintStream(outputStream);
ps.print(join);
ps.close();
}
outputStream.close();
// レスポンスコードを取得
int statusCode = urlConnection.getResponseCode();
// レスポンスコード200は通信に成功したことを表す
if (statusCode == 200) {
inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
// 1行ずつレスポンス結果を取得しstrに追記
result = bufferedReader.readLine();
while (result != null) {
str += result;
result = bufferedReader.readLine();
}
bufferedReader.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// レスポンス結果のJSONをString型で返す
return str;
}