【发布时间】:2014-08-13 23:57:46
【问题描述】:
使用 Retrofit 1.6.0、OkHTTP 2.0.0 和 OkHTTP-UrlConnection 2.0.0。
我正在使用 Retrofit 对不存在的 URL 进行 POST 到服务。正如预期的那样,调用失败回调。但是,RetrofitError 参数没有响应。我真的很想获取使用返回的 HTTP 状态代码
error.getResponse().getStatus()
但由于 getResponse() 返回 null,我不能。
为什么 getResponse() 为空,如何获取状态?
谢谢。
此外,正如预期的那样,我收到的错误是 UnknownHostException。重复:我期待这个错误。我想知道如何获取 HTTP 状态码或者为什么 error.getResponse() 返回 null。
编辑:这是一些代码:
RestAdapterBuilderClass.java
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("http://badURL.DoesntMatter/");
.setRequestInterceptor(sRequestInterceptor)
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
sService = restAdapter.create(ServiceInterface.class);
ServiceInterface.java
@POST("/Login")
void login(@Body JsonObject body, Callback<String> callback);
CallbackClass.java
@Override
public void failure(RetrofitError error) {
if (error.getResponse() == null) {
// error.getResponse() is null when I need to get the status code
// from it.
return;
}
}
【问题讨论】:
-
你能粘贴你的代码示例吗
-
@NickCardoso 添加了失败回调的代码。
-
谢谢,您能否包含整个代码示例(包括您发送请求和 URL 的部分) - 另外,错误是什么,不同的错误会为您提供不同的结果。当您可以搜索确切的错误时,Retfrofit 文档可能会非常好
-
@NickCardoso 还有一些从构建器到失败回调的代码。
-
如果你无法连接到你请求的远程主机,你怎么能收到他的HTTP状态?
标签: java android retrofit okhttp