前回同様、今度はAndroidJavaでWebAPIに接続しましたので、手法を記載します。
##まずURLを作る。
###String型で生成します。
String urlStr = "http://hogehoge.php?";
パラメータは別の値で保持します。
String id = "1";
バックグラウンド処理にする為、以下を記載
TQProgress.showProgress(activity, activity.getString(R.string.checking_lancher));
task.execute(urlStr);```
##バッググラウンドで接続する
###以下を記載
```java
class RequestDataTask extends AsyncTask<String, Integer, Integer> {
final int CONNECTION_TIMEOUT = 0;
final int READ_TIMEOUT = 0;
private String result = "";
private String time;
private String version;
private Activity activity;
private TopFragment topFragment;
/**
* コンストラクタ
*/
public RequestDataTask(Activity _activity, TopFragment _topFragment) {
super();
activity = _activity;
topFragment = _topFragment;
}
/**
* バックグランドで行う処理
*/
@Override
protected Integer doInBackground(String... value) {
URL url = null;
HttpURLConnection conn = null;
try {
url = new URL(value[0]);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(CONNECTION_TIMEOUT);
conn.setReadTimeout(READ_TIMEOUT);
conn.setRequestMethod("GET");
conn.connect();
int statusCode = conn.getResponseCode();
if(statusCode == HttpURLConnection.HTTP_OK){
//responseの読み込み
final InputStream in = conn.getInputStream();
String encoding = conn.getContentEncoding();
if(null == encoding){
encoding = "UTF-8";
}
final InputStreamReader inReader = new InputStreamReader(in, encoding);
final BufferedReader bufferedReader = new BufferedReader(inReader);
String line = null;
while((line = bufferedReader.readLine()) != null) {
result += line;
}
bufferedReader.close();
inReader.close();
in.close();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e){
}finally {
if (conn != null) {
// コネクションを切断
conn.disconnect();
}
}
return 0;
}
/**
* バックグランド処理が完了し、UIスレッドに反映する
*/
@Override
protected void onPostExecute(Integer res) {
TQProgress.hideProgress();
try {
JSONObject json = new JSONObject(result);
error = json.getJSONObject("ret").getString("error");
} catch (JSONException e) {
e.printStackTrace();
}
String type = "";
String msg = "";
if(error.equals("1")){
msg = activity.getString(R.string.error_msg);
}
if(!"".equals(msg)) {
//ダイアログ表示
new TQDialog(topFragment).showAlert(
activity,
type,
activity.getString(R.string.alert_title),
msg);
}
TQProgress.hideProgress();
}
}
##まとめ
今回はAndroidでWebApiを呼び出し、Jsonで値を受け取り
戻って来た値によってメッセージを出す処理を作りました!
内容はまだ不透明な部分があるのでまだまだ勉強していきます!
また新しいことを学んだ時はQiitaにあげていきたいと思います。
拙い内容でしたが、これにて!