2016-01-22 5 views
0

Недавно я перешел на «Дооснащение», я хочу заменить этот объект установки httpost с помощью «Дооснащения». Как мне это сделать.http post setEntity using retrofit

JSONObject jsonObject = new JSONObject(); 
    jsonObject.put("childId", childId); 

    HttpPost httpPost = new HttpPost(url); 
    StringEntity entity = new StringEntity(jsonObject.toString()); 
    httpPost.setEntity(entity); 

это то, что я пытался сделать, но она доцент работу,

Observable<Item> getListOfFeed(@Body StringEntity params); 

ответ

0

наконец выяснить ответ, добавить пользовательский класс TypedJsonString,

public class TypedJsonString extends TypedString { 
    public TypedJsonString(String body) { 
     super(body); 
    } 

    @Override public String mimeType() { 
     return "application/json"; 
    } 
} 

конвертировать мой объект JSON в TypedJsonString,

TypedJsonString typedJsonString = new TypedJsonString(jsonObject.toString()); 

изменил класс апи следующим образом,

Observable<Item> getListOfFeed(@Body TypedJsonString typedJsonString); 
0

Вы можете отправить запрос с Post используя следующий код в Retrofit в интерфейсе API

public interface MyAPI{ 
@FormUrlEncoded 
@POST("rest url") 
Call<Item> loadQuestions(@Field("parameter_name")String order); 
} 

Dont забудьте сообщить об этом @FormUrlEncoded, чтобы позвонитья этой функции

Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl("url") 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 
MyAPI api=retrofit.create(MyAPI.class); 
Call<Item> call=api.loadQuestions("pass your data here"); 
call.enqueue(new Callback<Item>() { 
     @Override 
     public void onResponse(Response<Item> response, Retrofit retrofit) { 
      Log.e("response",response.message()); 

     } 

     @Override 
     public void onFailure(Throwable t) { 

     } 
});