【Android】HTTP Clientの「OkHttp」でAPIを実行する

タイトル通り、Androidアプリで APIを使う方法についてです。
今回は「OkHttp」という HTTP Client を使っています。

参考にさせていただいた記事はこちらから。

OkHttp(基本的なGET・POST) – Qiita
https://qiita.com/naoi/items/8d493f00b0bbbf8a666c

 

早速ですが、コードはこちらから。

String url = [APIのURL];
Request request = new Request.Builder().
        url(url).
        build();

OkHttpClient client = new OkHttpClient();

client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Request request, IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(Response response) throws IOException {
        Log.d("Response", response.body().string());
    }
});

こちらはGETの場合の記述方法です。
データの取得は非同期で行っています。
同期処理も行えるようですが、私の環境では実行時にエラーで落ちたので、使用していません。

こちらはPOST処理の場合。

String url = [APIのURL];
MediaType MIMEType = MediaType.parse("application/json; charset=utf-8");

RequestBody requestBody = RequestBody.create(MIMEType, [送信するdata]);
Request request = new Request.Builder().
        url(url).
        post(requestBody).
        build();

OkHttpClient client = new OkHttpClient();

client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Request request, IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(Response response) throws IOException {
        Log.d("Response", response.body().string());
    }
});

GET処理とほぼ同じですね。
違うのは、5行目からの Request の箇所です。
こちらも非同期で処理を行うように記述しています。

 

が、ここで問題が。
記述が間違っているのか、POST処理で Data がうまく渡せません…。
JSONで記述しているのですが、どうしても渡しているはずのデータが受け取れず。
現在調査中ですが…早く直してしまいたいところです。
解決策が見つけられたら、またご紹介したいと思います!

以上、Androidアプリで API を実行するためのHTTP Client「OkHttp」についてのご紹介でした。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG