如何将数据映射发送到Web服务?

时间:2015-02-11 14:12:55

标签: java rest dictionary

我已经获得了我的网络服务代码:

    @POST
    @Produces(MediaType.APPLICATION_JSON)
    public static Response fillData(final Map<String, Object> data) {  
       ...  
       final byte[] file = ...
       return Response.ok(file).build();

如何将地图数据发送到服务?

final javax.ws.rs.core.Response reponse = client.target(URL_REST).path("/path").request(MediaType.APPLICATION_JSON).post(?);

以下是我的JSON文件示例:

{
  "activity" : {
    "code" : "ACT_014",
    "title" : "FIGHTING"
  },
  "adress" : {
    "place" : "",
    "number" : ""
  }
}

谢谢。

4 个答案:

答案 0 :(得分:0)

您是否尝试过HttpURLConnection?

URL url = new URL(URL_REST);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/json");

        String input = "{\"activity\" :....}";

        OutputStream os = conn.getOutputStream();
        os.write(input.getBytes());
        os.flush();

...并收集输出响应数据

答案 1 :(得分:0)

我必须使用MediaType.APPLICATION_JSON_TYPE:

.post(Entity.entity(data, MediaType.APPLICATION_JSON_TYPE), Response.class)

答案 2 :(得分:0)

如果你知道主持人地址,你也可以使用postman,curl或soapUI。

答案 3 :(得分:0)

如果您对客户端技术没有要求,可以使用Restlet框架和库org.json。以下是代码示例:

ClientResource cr = new ClientResource("http://...");
JSONObject obj = new JSONObject();
obj.put("activity", "my value");
(...)
cr.post(new JsonRepresentation(obj));

希望它有所帮助, 亨利