2017-01-20 12 views
5

1.This po raz użyć modernizacyjne błędówudało się wywołać okhttp3.RequestBody publicznego() bez argumentach

pierwszy krok:

interfejsu publicznej RequestService {

@POST ("home/indexThree") 
Call<RequestBody> getHomeinfo(@Body RequestBody info); 

}

drugi etap:

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

Długo szukam w sieci. Ale nie ma sensu. Proszę pomóż lub spróbuj podać kilka pomysłów, jak to osiągnąć. dzięki!

+0

który błąd? Czy możesz dać logcat? – TruongHieu

+0

Twoje pytanie jest bardzo niejasne, ale może być możliwym duplikatem 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: Nie można wywołać publicznego okhttp3.RequestBody() bez args – ljame

Odpowiedz

-1

użyć prawidłowej klasy odpowiedzi modelu wywołania z serwera, ten komunikat o błędzie, ponieważ używasz połączenia.

+0

użyć wywołania 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

Używam tego samego kodu dla żądania ciała i dobra pracy. – user3385125

0

Poznałem również ten problem i znaleźć odpowiedź na pytanie, myślę, że trzeba napisać Call<ResponseBody>

-1

poznałem probem wczoraj i wreszcie sloved it.since modernizacyjny jest spokojny, to połączenie nie jest poprawne, powinno to być Call, gdzie CallBackBean jest fasolą, która wraca do ciebie w odpowiedzi na twoją prośbę. , aby uzyskać szczegółowe informacje, patrz http://blog.csdn.net/u013795543/article/details/70948978.

+1

Twoja odpowiedź byłaby ** znacznie ** poprawiona, gdyby odpowiednie szczegóły były tutaj. W rzeczywistości to * może * odpowiedzieć na pytanie OP; ale proszę pokaż zaktualizowany kod. –

Powiązane problemy