在开发过程中遇到一个问题:后端API返回的Response里没有Body,API成功与否是根据HTTP的status来表示的。
那么APP端如何处理呢?如果使用的是Retrofit网络库,则将返回体置为“Void”即可。同步和异步的方法声明示例如下:
@POST
Call<Void> syncApi(@Url String url, @HeaderMap Map<String, String> headers,
@Body RequestBody body);
@POST
Observable<Void> asyncApi(@Url String url, @HeaderMap Map<String, String> headers,
@Body RequestBody body);
以同步方法为例,处理过程如下:
Response<Void> result = mApiService.synApi(url, headers2, requestBody).execute();
boolean isSent = false;
if (result != null) {
isSent = result.isSuccessful();
}
Log.w(TAG,"synApi result:>> " + isSent);