java - 如何向 REST 网络服务发送 POST 请求并发送 JSON?

标签 java web-services

我有一个网络服务,我想通过 POST 方法向它发送一个 JSON 字符串。 到目前为止,我制作的网络服务使用 GET 方法,看起来像这样:

@GET
@Produces("application/json")
@Path("{name}")

 public String getJson(@PathParam("name") String name) {
    //TODO return proper representation object
     CompanyDatabase cmpdb=new CompanyDatabase();
     String json=cmpdb.searchAgent(name);
    return json;
 }

我需要对此方法进行哪些更改才能接受 POST 数据?

最佳答案

要接受输入数据,您的方法需要声明它消耗而不生成的数据。

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.core.MediaType;

@POST
@Consumes(MediaType.APPLICATION_JSON)
public void acceptsCustomer(Customer c)  {
  // .. do something with the input.
}

需要正确注释 Customer 类才能将 JSON 转换为 Java POJO。最好为 MediaType 使用 JAX-RS 常量。

您还应该查阅 JAX-RS 提供程序(例如:RESTEasy 或 Jersey)的文档,因为这些用户指南可能会有示例。

关于java - 如何向 REST 网络服务发送 POST 请求并发送 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549839/

相关文章:

java - 在 TomEE 上访问 OpenEJB 示例 Web 服务时查找错误

java - Spring上下文配置

java - 如何单独格式化双值逗号

.Net web请求通过代理,自动检测凭据

java - createFault 的错误代码参数已传递 NULL - 使用 Metro 2.3

web-services - 为 C++ 项目提供 Web 前端

java - 安卓刮刮卡应用

java - 如何在 Websphere 6.1 部署描述符中的 Web 模块级别指定共享库引用?

Java 8 Lambda 在一次迭代中多次使用一条信息

java - Axis、Java 消息传递服务和 MIME header