ユーザー名とパスワードを使用してセキュア レスト API (Https) を呼び出したい。API からの応答は JSON オブジェクトです。
どうやってやるの ?
ありがとうございました。
ユーザー名とパスワードを使用してセキュア レスト API (Https) を呼び出したい。API からの応答は JSON オブジェクトです。
どうやってやるの ?
ありがとうございました。
接続には、AsyncTask と次のスニペットを使用します。
URL url = new URL(res.getString(R.string.url));
String charset = res.getString(R.string.utf);
HttpURLConnection http = null;
HttpsURLConnection https = (HttpsURLConnection) url.openConnection();
http = https;
http.setRequestMethod(res.getString(R.string.post));
http.setDoInput(true);
http.setDoOutput(true);
http.setRequestProperty(res.getString(R.string.charset), charset);
http.setRequestProperty(res.getString(R.string.content_type), "application/x-www-form-urlencoded;charset=" + charset);
String query = String.format("par1=%s&par2=%s&par3=%s&par4=%s",
URLEncoder.encode(res.getString(R.string.par), charset),
URLEncoder.encode(res.getString(R.string.par2), charset),
URLEncoder.encode(res.getString(R.string.par3), charset),
URLEncoder.encode(holder.toString(), charset));
OutputStream output = null;
try {
output = http.getOutputStream();
output.write(query.getBytes(charset));
} finally {
if (output != null) try { output.close(); } catch (IOException logOrIgnore) {}
}
BufferedReader in = new BufferedReader(new InputStreamReader(http.getInputStream()),4800);
StringBuffer responseBuffer = new StringBuffer();
String line;
while ((line = in.readLine()) != null) {
responseBuffer.append(line);
}
in.close();
answer = new Gson().fromJson(responseBuffer.toString(), Answer.class);
JSON オブジェクトの解析には Google 製の GSON ライブラリを使用すると非常に便利です。
リクエストには HTTPPost オブジェクトを、レスポンスには JSONObject を使用します。例えば :
http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/11/a-simple-restful-client-at-android/