我现在正在创建一个简单的CRUD服务。我有一个我想从Android应用程序调用的post方法。它以前工作过,但突然间我只能在使用Postman或其他东西时调用它。从移动设备上它无法正常工作。
我看到它通过带有调试器的过滤器,但它永远不会进入该方法。当我删除过滤器时,我得到相同的结果,所以我知道过滤器不是问题所在。任何人都知道为什么会发生这种情况?
下面的一些代码段:
终点
@POST
@Consumes(APPLICATION_JSON)
@Path("/contact")
public void opslaanContactbericht(ContactRequest request) {
contactService.opslaanBericht(request);
}
android api界面(Retrofit2。标题已删除,但我知道该部分可用于过滤器)
@POST("contact")
@Headers("validheader")
Call<Contact> opslaanContact(@Body Contact contact);
我称之为界面的片段:
BackendApi api = retrofit.create(BackendApi.class);
Contact contact = new Contact();
contact.setName(this.naamTextview.getText().toString());
contact.setEmail(this.emailTextview.getText().toString());
contact.setBericht(this.berichtTextview.getText().toString());
Call<Contact> call = api.opslaanContact(contact);
call.enqueue(this);
如果需要更多信息,请问我..之前从未见过这样的事情,所以我真的不知道哪些信息最有用..
答案 0 :(得分:0)
您在Retrofit中缺少正确的标题,默认情况下未设置:
@Headers({"Content-type: application/json"})
答案 1 :(得分:0)
请求中的属性名称不正确.. Weard足够它在Android方面给出了积极的响应,但它从未到达代码也没有出错。很棒的wtf,但现在已经解决了