Retrofit2.0返回404未找到

时间:2015-12-10 15:49:39

标签: android retrofit

 Retrofit retrofit = new Retrofit.Builder()

            .baseUrl("http://ipAdress/SaveImg/DouBanGirl")
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    imgApi imgService = retrofit.create(imgApi.class);
    Call<Img> imgCall = imgService.getImg("20151119");

    imgCall.enqueue(new Callback<Img>() {
        @Override
        public void onResponse(retrofit.Response<Img> response, Retrofit retrofit) {
            Log.d(TAG, response.code() + " ");
        }

        @Override
        public void onFailure(Throwable t) {
            Log.d(TAG, t.getMessage());

        }
    });

}

public interface imgApi {
    @GET("/DouBanGirl")
    Call<Img> getImg(@Query("date") String date);
}

当我尝试这个时,它显示404未找到。网址是正确的,我查了一下。 我不知道发生了什么。

2 个答案:

答案 0 :(得分:7)

由于Retrofit 2.0如何使用Http Resolve来解析端点的uri方案,如果您指定像此http://hello.com这样的baseurl,并将端点URL指定为/world/foo,它将会中断。

您需要使用基本网址http://hello.com/和端点网址world/foo

/有所不同。

答案 1 :(得分:0)

这个问题是在不久前问到的,但我回答是为了防止将来有人到达这里。 改造无法像网络浏览器或邮递员那样识别li:not(.selected) select, li:not(.selected) button { display: none; } 状态代码。仅当您发送200并将其与一个空的json捆绑在一起时,它才会检测到,否则就像服务器为它提供了200状态码一样。 例如,在Express js中,代码404并未使Retrofit认为任务已完成,您应该使用类似res.sendStatus(200);