无法调用没有args的公共okhttp3.RequestBody()失败

时间:2017-01-20 06:35:15

标签: android okhttp3

1.这是我使用改造错误的时间

第一步:

public interface RequestService {
    @POST ("home/indexThree")
    Call<RequestBody> getHomeinfo(@Body RequestBody info);
}
第二步:

 Retrofit retrofit = new Retrofit.Builder()
             .baseUrl(url)
             .addConverterFactory(GsonConverterFactory.create())
             .build();
    RequestService requestService = retrofit.create(RequestService.class);
    RequestBody body = RequestBody.create(JSON, jsonObject.toString());
            Call<RequestBody> homeinfo = requestService.getHomeinfo(body);
    homeinfo.enqueue(new Callback<RequestBody>() {
        @Override
        public void onResponse(Call<RequestBody> call, Response<RequestBody> response) {
            System.out.println("response"+response.body().toString());
        }

        @Override
        public void onFailure(Call<RequestBody> call, Throwable t) {
            System.out.println("onFailure"+t.getMessage().toString());
        }
    });

我在网上搜索了很长时间。但没用。请帮助或尝试提供一些如何实现这一点的想法。 THX!

5 个答案:

答案 0 :(得分:0)

Call<LoginModel>call=apiService.getForgotPassword(Utill.encodeString(json));call.enqueue(new Callback<LoginModel>() {
        @Override
        public void onResponse(Call<LoginModel> call, 
        Response<LoginModel> response) {
            pDialog.dismiss();
            if (response.body() != null) {
                LoginModel clientModel = response.body();
                if (clientModel.getResult().equalsIgnoreCase("OK")) {
                    Utill.showCenteredToast(LoginActivity.this, clientModel.getResult());

                    dialog.dismiss();
                } else {
                    dialog.dismiss();
                    Utill.showCenteredToast(LoginActivity.this, clientModel.getResult());
                }
            }
        }

答案 1 :(得分:0)

我也遇到了这个问题,我找到了答案的问题,我认为你应该写Call<ResponseBody>

答案 2 :(得分:0)

使用ResponseBody而非requestbody解决了我的情况:

public interface RequestService {
@POST ("home/indexThree")
Call<ResponseBody> getHomeinfo(@Body RequestBody info);

}

答案 3 :(得分:-1)

使用来自服务器的正确Call模型类响应,这些错误显示因为你使用Call。

答案 4 :(得分:-1)

我昨天遇到了这个探测器,终于解决了它。因为改造是安静的,呼叫是不正确的,它应该是Call,其中CallBackBean是返回给你进行重新请求的bean。 有关详细信息,请参阅http://blog.csdn.net/u013795543/article/details/70948978