HttpParams已弃用解决方案

时间:2017-01-07 10:33:44

标签: java android http

我有一个来自codecanyon的应用程序源,我将构建我的应用程序。我正在学习机器人。我发现在一个函数中我收到了一个名为HttpParams deprecated的警告。我的代码如下。任何人都可以建议我如何使其正常工作?

public static boolean IsContestEnabled() {
        boolean result = false;


        String geturl = DataManager.SIMPLE_BASE_URL + "getContest.php";
        HttpParams param = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(param, 4000);
        HttpConnectionParams.setSoTimeout(param, 10000);

        HttpClient client = new DefaultHttpClient(param);
        // Send Httpget request
        HttpGet get = new HttpGet(geturl);

        try {


            HttpResponse responsePOST;
            String response = null;

            responsePOST = client.execute(get);

            HttpEntity resEntity = responsePOST.getEntity();

            if (resEntity != null) {

                // get response
                response = EntityUtils.toString(resEntity);

                result = true;

                try {

                    JSONObject c = new JSONObject(response);

                    String status = c.getString("success");

                    if (status.equals("1")) {
                        DataManager.status = status;
                    } else {
                        DataManager.status = status;
                    }


                } catch (JSONException e) {
                    Log.e("JSON Parser", "Error parsing data " + e.toString());
                }

            }
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return result;
    }

我已经通过Google尝试了一些更改并使用Stackflow,但它无效。如果有人可以挽救我的一天,请告诉我。感谢

1 个答案:

答案 0 :(得分:1)

设置Retrofit很容易,你只需要一个Response对象的接口,你需要定义一个名为PostService的接口和一个POJO类来封装你的数据Post(在你的情况下)像这样:

public interface PostService {
@GET("{api end point (excluding the base url)}")
Call<List<Post>> listPosts();
}

稍后您需要设置Retrofit实例,该实例将设法调用API基本URL并挂钩您要收集的资源:

Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("https://{your base URL}/")
.build();

PostService mService = retrofit.create(PostService.class);

我建议您将活动中的改装对象设置为清理样板。如果您采用MVP模式,演示者是获得改造对象的最佳位置。

既然已经设置了所有内容,您应该准备好调用改进实例并从api中获取数据,这样就可以了

Call<List<Post>> posts = mService.listPosts();

Ps:你需要分别在这里找到的Gson和OkHttp库(放在gradle文件中):

//Gson Library
compile 'com.google.code.gson:gson:2.8.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

//OkHttp3
compile 'com.squareup.okhttp3:okhttp:3.5.0'
compile 'com.squareup.okio:okio:1.11.0'