我最近转向Retrofit,我想用Retrofit替换这个httpost集实体。我怎么能这样做。
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 :(得分:1)
最后找出答案,添加一个自定义的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());
更改了api类,如下所示,
Observable<Item> getListOfFeed(@Body TypedJsonString typedJsonString);
答案 1 :(得分:0)
您可以使用{API}界面中Post
中的以下代码,使用Retrofit
发送请求
public interface MyAPI{
@FormUrlEncoded
@POST("rest url")
Call<Item> loadQuestions(@Field("parameter_name")String order);
}
别忘了提及@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) {
}
});