Android
WebAPI

AndroidJavaでWebAPIを接続する

前回同様、今度はAndroidJavaでWebAPIに接続しましたので、手法を記載します。

まずURLを作る。

String型で生成します。

String urlStr = "http://hogehoge.php?";

パラメータは別の値で保持します。

String id = "1";

バックグラウンド処理にする為、以下を記載
RequestDataTask task = new RequestDataTask(activity, this);
TQProgress.showProgress(activity, activity.getString(R.string.checking_lancher));
task.execute(urlStr);

バッググラウンドで接続する

以下を記載

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にあげていきたいと思います。
拙い内容でしたが、これにて!