我以前使用volley实现了以下发布请求,但现在我想用它来进行改造。 所以我的休息网络服务如下 www.blahblahblah.com/webservice.svc /
我有一个在Web服务中调用的函数(Person),它接受以下jsonobject
JSONObject jsonObject = new JSONObject();
JSONObject searchCriteria = new JSONObject();
jsonObject.put("FullName", "frank jones");
jsonObject.put("DOB", "06-04-1978");
jsonObject.put("Age", "28");
jsonObject.put("Reason", "Search");
searchCriteria.put("searchCriteria", jsonObject);
所以在凌空抽射中我打电话给www.blahblahblah.com/webservice.svc/Person 并传递上面的jsonobject。 完美运作
因此对于Retrofit我使用了相同的逻辑,创建我的jsonobject并在请求中传递它 所以我使用相同的网址www.blahblahblah.com/webservice.svc /
创建我的帖子
@POST("Person")
Call<PersonResponseData> getPersonAccess(@Body Object body);
然后我的代码获得响应
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(urlSearch)
.addConverterFactory(GsonConverterFactory.create())
.build();
RetrofitService service = retrofit.create(RetrofitService.class);
Call<PersonResponseData> personResponseDataCall = service.getPersonAccess(searchCriteria);
personResponseDataCall.enqueue(new Callback<PersonResponseData>() {
@Override
public void onResponse(Response<PersonResponseData> response, Retrofit retrofit) {
int statuscode = response.code();
PersonResponseData personResponseData = response.body();
}
@Override
public void onFailure(Throwable t) {
}
});
我刚收到404错误,任何想法。 正如我所说,这在排球中完美无缺,但我在改造方面做错了。
感谢您的帮助
答案 0 :(得分:0)
您可以查看此问题link以下是retrofit 2
与POST request
答案 1 :(得分:0)
这只是猜测,但请尝试以下方法:
1)在呼叫声明中指定它,而不是Call getPersonAccess
,而是Call<PersonResponseData> getPersonAccess
;
2)使用POJO代替JSON对象并将其用作正文,而不是将Object传递给getPersonAccess
调用。