2017-01-20 5 views
5

1.Это время я использую модернизированную ошибкуНе удался вызвать общественный okhttp3.RequestBody() без аргументов

первого шаг:

общедоступного интерфейс 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()); 
     } 
    }); 

Я долго искал сеть. Но бесполезно. Пожалуйста, помогите или попытайтесь дать некоторые идеи, как достичь этого. спасибо!

+0

который ошибка? Можете ли вы дать логарифм? – TruongHieu

+0

ваш вопрос очень неясен, но может быть возможным дублированием http://stackoverflow.com/questions/30358545/caused-by-retrofit-retrofiterror-method-post-must-have-a-request-body/30358749?noredirect = 1 # comment48809814_30358749 – Dibzmania

+0

log: java.lang.RuntimeException: Не удалось вызвать общедоступный okhttp3.RequestBody() без аргументов – ljame

ответ

-1

используйте правильный класс ответа модели ответа от сервера, эти ошибки показывают, потому что вы используете Call.

+0

использовать вызов user3385125

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()); 
       } 
      } 
     } 
+0

Я использую тот же код для запроса тела и работы. – user3385125

0

я встретил эту проблему, и я нашел ответ на вопрос, я думаю, вы должны написать Call<ResponseBody>

-1

вчера я встретил probem, и, наконец, sloved it.since дооснащения является успокоительным, вызов не Правильно, это должно быть Call, где CallBackBean - это компонент, который возвращается вам для вашего запроса. см. http://blog.csdn.net/u013795543/article/details/70948978 для деталей.

+1

Ваш ответ будет ** значительно улучшен, если соответствующие детали были здесь. Как бы то ни было, это * может * ответить на вопрос OP; но, пожалуйста, покажите обновленный код. –

 Смежные вопросы

  • Нет связанных вопросов^_^