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

村上 著者:村上

【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」についてのご紹介でした。

  • この記事いいね! (0)

著者について

村上

村上 administrator