Android/HttpRequest通信/DefaultHttpClient/Google画像APIサンプル
提供: 初心者エンジニアの簡易メモ
2018年8月6日 (月) 11:30時点におけるAdmin (トーク | 投稿記録)による版 (Admin がページ「Android/HttpRequest通信/Google画像APIサンプル」を「Android/HttpRequest通信/DefaultHttpClient/Google画像APIサンプル」に移動しました)
Google画像APIサンプル
HttpRequest通信のライブラリにandroid/HttpRequest通信/サンプルを使用
サンプルコード
package info.nonip.android.lib.entity; import android.util.Log; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.net.URLEncoder; /** * Google画像APIクラス * * @link https://developers.google.com/image-search/v1/jsondevguide * GoogleImageApi api = new GoogleImageApi(); * api.setImgsz("xlarge|xxlarge|huga"); * api.exec("初音ミク 壁紙"); * ArrayList<String> urls = api.getUrls(); * for (String url : urls) {} */ public class GoogleImageApi { // 画像サイズ定数 public static String IMGSZ_ICON = "icon"; public static String IMGSZ_SMALL = "small"; public static String IMGSZ_MEDIUM = "medium"; public static String IMGSZ_LARGE = "large"; public static String IMGSZ_XLARGE = "xlarge"; public static String IMGSZ_XXLARGE = "xxlarge"; public static String IMGSZ_HUGE = "huge"; public static String IMGSZ_WALLPAPER = "xlarge|xxlarge|huga"; // セーフモード定数 public static String SAFE_ACTIVE = "active"; public static String SAFE_OFF = "off"; public static String SAFE_MODERATE = "moderate"; // ファイルタイプ public static String FILETYPE_JPG = "jpg"; public static String FILETYPE_PNG = "png"; public static String FILETYPE_GIF = "gif"; public static String FILETYPE_BMP = "bmp"; // 画像タイプ public static String IMGTYPE_FACE = "face"; public static String IMGTYPE_PHOTO = "photo"; // 写真 public static String IMGTYPE_CLIPART = "clipart"; // イラスト public static String IMGTYPE_LINEART = "lineart"; // 線画 public static String IMGTYPE_NEWS = "news"; // ニュース // ページ private int mPage = 0; // 画像サイズ private String mImgsz; // ファイルタイプ private String mFiletype; // 画像タイプ private String mImgtype; // セーフモード private String mSafe = SAFE_MODERATE; // 結果 private JSONArray mResults; // ページ指定(0~15 public void setPage(int page) { mPage = page; } // 画像サイズ設定 public void setImgsz(String imgsz) { mImgsz = imgsz; } // ファイルタイプ設定 public void setFiletype(String filetype) { mFiletype = filetype; } // 画像タイプ設定 public void setImgtype(String imgtype) { mImgtype = imgtype; } // セーフモード public void setSafe(String safe) { mSafe = safe; } // API実行 public void exec(String keyword) { // キーワードのURLエンコード keyword = URLEncoder.encode(keyword); // ページ int start = mPage * 4; // URL生成 String url = "http://ajax.googleapis.com/ajax/services/search/images?v=1.0" + "&q=" + keyword + "&start=" + start + "&safe=" + URLEncoder.encode(mSafe); // 画像サイズをURLに追加 if (mImgsz != null) { url += "&imgsz=" + URLEncoder.encode(mImgsz); } // 画像タイプをURLに追加 if (mImgtype != null) { url += "&imgtype=" + URLEncoder.encode(mImgtype); } // ファイルタイプをURLに追加 if (mFiletype != null) { url += "&filetype=" + URLEncoder.encode(mFiletype); } // SpHttp通信ロード SpHttpRequest http = new SpHttpRequest(url); // 実行 String json = http.exec(); Log.d("GoogleImageApi", "json=" + json); try { JSONObject rootObject = new JSONObject(json); JSONObject responseData = rootObject.getJSONObject("responseData"); mResults = responseData.getJSONArray("results"); } catch (JSONException e) { } } // 結果リスト取得 public JSONArray getResults() { return mResults; } // urlリスト取得 public ArrayList<String> getUrls() { ArrayList<String> ret = new ArrayList<String>(); if (mResults == null) return ret; try { for (int i = 0; i < mResults.length(); i++) { JSONObject jsonObject = mResults.getJSONObject(i); String url = jsonObject.getString("unescapedUrl"); Log.d("GoogleImageApi", "url=" + url); ret.add(url); } } catch (JSONException e) { } return ret; } // サムネurlリスト取得 public ArrayList<String> getTbUrls() { ArrayList<String> ret = new ArrayList<String>(); if (mResults == null) return ret; try { for (int i = 0; i < mResults.length(); i++) { JSONObject jsonObject = mResults.getJSONObject(i); ret.add(jsonObject.getString("tbUrl")); } } catch (JSONException e) { } return ret; } // url取得(番号指定 public String getUrl(int i) { try { JSONObject jsonObject = mResults.getJSONObject(i); return jsonObject.getString("unescapedUrl"); } catch (JSONException e) { return ""; } } // 解放 public void release() { mResults = null; } }