通过翻新获取原始HTTP响应

赫克托

我想从我的API REST获取原始的HTTP响应。我已经尝试过使用此界面:

@POST("/login")
@FormUrlEncoded
Call<retrofit.Response> login(@Field("username") String login, @Field("password") String pass,
                     @Field("appName") String appName, @Field("appKey") String appKey);

但是我得到:

java.lang.IllegalArgumentException:无法创建用于改装的调用适配器。方法Api.login的调用

我这样创建Retrofit

Retrofit.Builder retrofitBuilder = new Retrofit.Builder();
retrofitBuilder.addConverterFactory(JacksonConverterFactory.create());
Retrofit retrofitAdapter = retrofitBuilder.baseUrl(baseUrl).build();
return retrofitAdapter.create(apiClass);
iagreen:

要访问原始响应,请使用ResponseBodyokhttp作为呼叫类型。

Call<ResponseBody> login(...)

在回调中,可以使用响应code方法检查响应代码这适用于任何翻新2返回类型,因为您的回调始终Response使用实际返回类型进行参数化。对于异步-

Call<ResponseBody> myCall = myApi.login(...)
myCall.enqueue(new Callback<ResponseBody>() {
    @Override
    public void onResponse(Response<ResponseBody> response, Retrofit retrofit) {
        // access response code with response.code()
        // access string of the response with response.body().string()
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
});

用于同步呼叫-

Response<ResponseBody> response = myCall.execute();
System.out.println("response code" + response.code());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章