読者です 読者をやめる 読者になる 読者になる

【Android】OkHttpで各種API取得

 

APIを使ってなにかをするとき、HTTP通信が必要ですよね。

そんなときは、「OKHTTP」が便利です。

 

まずはライブラリの設定です。

AndroidManifest.xml
dependencies {
  compile 'com.squareup.okhttp3:okhttp:3.4.1'
  compile 'com.squareup.okio:okio:1.10.0'
}

okio-1.10.0.jarがないと

java.lang.NoClassDefFoundError: Failed resolution of: Lokio/Bufferエラー

-------------------------------------------------------------------------------------------------

OKHTTPの実装は、非同期処理で行ってください。

非同期処理で行わないと「android.os.NetworkOnMainThreadException」エラー

(「AsyncTask」だとdoInBackground内)

 

String apikey = "API_KEY";
String API_1 = "https://www.googleapis.com/youtube/v3/search?key=";
String API_2 = "&q=";
String url = API_1 + apikey + API_2 + searchWord;
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
   .url(url)
   .build();
try {
  Response response = client.newCall(request).execute();
  String result = response.body().string();
  try {
   JSONObject resJson = new JSONObject(result);

   ~

 

こんな感じです。

取得結果が「JSON」の場合のイメージです。

(APIYouTube APIです)