android - 如何使用 Retrofit 2 处理空响应体?

标签 android retrofit retrofit2 square

最近我开始使用 Retrofit 2,但遇到了解析空响应正文的问题。我有一个服务器,它只响应 http 代码,响应正文中没有任何内容。

如何仅处理有关服务器响应的元信息( header 、状态代码等)?

最佳答案

编辑:

正如 jack ·沃顿所指出的,

@GET("/path/to/get")
Call<Void> getMyData(/* your args here */);

与我原来的回答相比,这是最好的方法--

您可以只返回一个 ResponseBody,它会绕过解析响应。

@GET("/path/to/get")
Call<ResponseBody> getMyData(/* your args here */);

然后在你的电话中,

Call<ResponseBody> dataCall = myApi.getMyData();
dataCall.enqueue(new Callback<ResponseBody>() {
    @Override
    public void onResponse(Response<ResponseBody> response) {
        // use response.code, response.headers, etc.
    }

    @Override
    public void onFailure(Throwable t) {
        // handle failure
    }
});

关于android - 如何使用 Retrofit 2 处理空响应体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33228126/

相关文章:

android - 使用 Kotlin 协程对 Retrofit2 进行错误处理

android - 从 MediaCodec 解码输出缓冲区

安卓工作室 : Cannot resolve symbol 'SwipeRefreshLayout'

android - 支持 Retrofit 挂起的线程切换优化

java - 改造:用一个元素反序列化数组时出错: "out of START_ARRAY token"

java - 使用 RxJava/RxAndroid 依次执行不同类型的 Observable

android - 使用 RxAndroid MVP Retrofit 修改回调

java - BitmapFactory 解码流在 ListView 中不起作用

android - GCC 4.4.3 offsetof 常量表达式错误。我应该如何解决这个问题?

java - 从 retrofit 查询中获取 map