改造无法返回数据

时间:2016-04-10 08:19:13

标签: android retrofit

我可以做错事, 我试图弄清楚如何使用改装,所以现在我只回复一般的ResponseBody,还没有解析任何东西,(只是一个简单的http get)

但改造无法获取数据,我做错了什么? >

我的Retrofit API>

public interface retrofitApi {

    String baseUrl = "http://localhost:3003/";

    @GET("api/radBox/getDegrees")
    Call<ResponseBody> getCallData();


    class Factory {
        private static retrofitApi service;

        public static retrofitApi getInstance() {
            if (service == null) {
                Retrofit retrofit = new Retrofit.Builder()
                        .baseUrl(baseUrl)
                        .addConverterFactory(GsonConverterFactory.create())
                        .build();

                service = retrofit.create(retrofitApi.class);
                return service;
            } else {
                return service;
            }

        }
    }


    }

在我的主要活动中我把&gt;

retrofitApi.Factory.getInstance().getCallData().enqueue(new Callback<ResponseBody>() {
        @Override
        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

            Log.d("myLogs", "log: " + response);

        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {
            Log.d("myLogs", "failed to Retrive Data");


}
        });

2 个答案:

答案 0 :(得分:1)

我认为您的问题是由使用“localhost”引起的。您似乎正在使用手机连接到手机的3003端口。将localhost交换到您的服务器IP以试一试。

我在我的改造项目中复制了所有代码,我交换了URL,一切都运行良好,这意味着您的改造代码没有问题。

答案 1 :(得分:0)

尝试使用ResponseBody你的模型(对我来说是WeatherModel),它必须从服务器返回。 喜欢这个

String baseUrl = "http://api.openweathermap.org/";

@GET("data/2.5/weather")
Call<WeatherModel> getCallData(@Query("q") String q, @Query("lang") String lang,
                               @Query("appid") String appid);

并像这样放入MainActivity

retrofitApi.Factory.getInstance()
            .getCallData("Taganrog,ru", "ru", "bde41abf61e82b6209a544a5ea2ddb76")
            .enqueue(new Callback<WeatherModel>() {
        @Override
        public void onResponse(Call<WeatherModel> call, Response<WeatherModel> response) {
            Log.d("myLogs", "log: " + response);
        }

        @Override
        public void onFailure(Call<WeatherModel> call, Throwable t) {
            Log.d("myLogs", "log: " + "failed to Retrive Data");
        }
    });

它适用于我