QueryDoubanUtils.java 1.62 KB
package com.gimi.common.cinema.model;

import com.gimi.common.cinema.utils.OkHttpClientManager;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;
import com.xgimi.gimicinema.model.ThreadUtils;

import java.io.IOException;

/**
 * Created by wugian on 2015/12/29
 */
public class QueryDoubanUtils {
    private static final String SEARCH_BY_NAME_URL =
            "https://api.douban.com/v2/movie/search?count=3&q=";

    public static void getQueryBeanByName(
            final String name, final AsyncCallback<QueryBean> callback) {
        ThreadUtils.subThread(new ThreadUtils.DoSomeThing() {
            @Override
            public void doSomeThing() {
                callback.onStart();
                WrongMsg wrongMsg = new WrongMsg();
                QueryBean result = null;
                Gson gson = new Gson();
                String s = "";
                try {
                    s = OkHttpClientManager.getAsString(SEARCH_BY_NAME_URL + name);
                    wrongMsg = gson.fromJson(s, new TypeToken<WrongMsg>() {
                    }.getType());
                    if (wrongMsg.getCode() != 0) {
                        callback.onFailure(wrongMsg);
                    } else {
                        result = gson.fromJson(s, new TypeToken<QueryBean>() {
                        }.getType());

                        callback.onSuccess(result);
                    }
                } catch (JsonSyntaxException | IOException e) {
                    e.printStackTrace();
                }
                callback.onDone();
            }
        });
    }
}