Java rest(javax.ws.rs)POST并不总是有效

时间:2016-12-10 14:03:24

标签: java android rest jax-rs retrofit2

我现在正在创建一个简单的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);

如果需要更多信息,请问我..之前从未见过这样的事情,所以我真的不知道哪些信息最有用..

2 个答案:

答案 0 :(得分:0)

您在Retrofit中缺少正确的标题,默认情况下未设置:

 @Headers({"Content-type: application/json"})

答案 1 :(得分:0)

请求中的属性名称不正确.. Weard足够它在Android方面给出了积极的响应,但它从未到达代码也没有出错。很棒的wtf,但现在已经解决了