Retrofit2.0 返回 404 not found
Retrofit2.0 is returning 404 not found
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 未找到。 url 是正确的,我检查过了。
不知道怎么回事
由于 Retrofit 2.0 如何使用 Http Resolve 来解析端点的 uri 方案,如果您像这样指定 baseurl http://hello.com
并将端点 URL 指定为 /world/foo
,它将休息。
您需要使用基 URL http://hello.com/
和端点 URL world/foo
。
/
与众不同。
这个问题刚才有人问过,但我回答这个问题是为了以防万一以后有人到达这里。
Retrofit 不像 Web 浏览器或 Postman 那样识别 200
状态代码。它只检测 200
如果你只发送它与空 json 捆绑在一起,否则它就像服务器给它 404
状态代码一样。
例如,在 Express js 中,代码 res.sendStatus(200);
不会让 Retrofit 认为任务已完成,您应该使用类似 res.status(200).send({});
的代码
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 未找到。 url 是正确的,我检查过了。 不知道怎么回事
由于 Retrofit 2.0 如何使用 Http Resolve 来解析端点的 uri 方案,如果您像这样指定 baseurl http://hello.com
并将端点 URL 指定为 /world/foo
,它将休息。
您需要使用基 URL http://hello.com/
和端点 URL world/foo
。
/
与众不同。
这个问题刚才有人问过,但我回答这个问题是为了以防万一以后有人到达这里。
Retrofit 不像 Web 浏览器或 Postman 那样识别 200
状态代码。它只检测 200
如果你只发送它与空 json 捆绑在一起,否则它就像服务器给它 404
状态代码一样。
例如,在 Express js 中,代码 res.sendStatus(200);
不会让 Retrofit 认为任务已完成,您应该使用类似 res.status(200).send({});