iag*_*een 194
编辑:
正如杰克沃顿指出的那样,
@GET("/path/to/get")
Call<Void> getMyData(/* your args here */);
Run Code Online (Sandbox Code Playgroud)
与我最初的回应相比,这是最好的方式 -
你可以只返回一个ResponseBody
,它将绕过解析响应.
@GET("/path/to/get")
Call<ResponseBody> getMyData(/* your args here */);
Run Code Online (Sandbox Code Playgroud)
然后在你的电话中,
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
}
});
Run Code Online (Sandbox Code Playgroud)
Ahm*_*egy 35
如果你使用RxJava,那么Completable
在这种情况下最好使用它
表示没有任何值的延迟计算,但仅表示完成或异常.该类遵循与Reactive-Streams类似的事件模式:onSubscribe(onError | onComplete)?
http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Completable.html
在接受的答案中:
@GET("/path/to/get")
Observable<Response<Void>> getMyData(/* your args here */);
Run Code Online (Sandbox Code Playgroud)
如果端点返回失败响应代码,它仍然在,onNext
并且您必须自己检查响应代码.
但是,如果你使用Completable
.
@GET("/path/to/get")
Completable getMyData(/* your args here */);
Run Code Online (Sandbox Code Playgroud)
你将只有onComplete
和onError
.如果响应代码成功,它将触发它将触发的onComplete
其他内容onError
.
Gen*_*wen 24
如果您使用的是rxjava,请使用以下内容:
@GET("/path/to/get")
Observable<Response<Void>> getMyData(/* your args here */);
Run Code Online (Sandbox Code Playgroud)
pzu*_*ulw 15
对于 kotlin,使用返回类型Call<Void>
仍然会抛出异常IllegalArgumentException: Unable to create converter for retrofit2.Call<java.lang.Void>
使用 Response 而不是 Call 解决了该问题
@DELETE("user/data")
suspend fun deleteUserData(): Response<Void>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
49639 次 |
最近记录: |