【问题标题】:Java rest (javax.ws.rs) POST not always workingJava rest (javax.ws.rs) POST 并不总是有效
【发布时间】:2023-03-09 03:40:01
【问题描述】:

我现在正在创建一个简单的 CRUD 服务。我有一个要从 Android 应用程序调用的 post 方法。它以前工作过,但突然间我只能在使用 Postman 或其他东西时调用它。从手机上它不起作用。

我看到它使用调试器通过过滤器,但它从未进入方法。当我删除过滤器时,我得到了相同的结果,所以我知道过滤器不是问题。有人知道为什么会发生这种情况吗?

下面的一些代码sn-ps:

端点

@POST
@Consumes(APPLICATION_JSON)
@Path("/contact")
public void opslaanContactbericht(ContactRequest request) {
    contactService.opslaanBericht(request);
}

android api 接口(Retrofit2. Header 已删除,但我知道该部分适用于过滤器)

@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);

如果需要更多信息,尽管问我。以前从未见过这样的事情,所以我真的不知道什么信息最有用。。

【问题讨论】:

    标签: java android rest jax-rs retrofit2


    【解决方案1】:

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

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

    【讨论】:

    • 虽然看到你的评论..该死的,如果是这样,我真的错过了..问题是请求中的属性名称错误..
    • 没有这个标题它也可以工作。虽然谢谢你的回答
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-03-28
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      • 2015-06-28
      相关资源
      最近更新 更多