我可以做错事, 我试图弄清楚如何使用改装,所以现在我只回复一般的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");
}
});
答案 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");
}
});
它适用于我