![](/img/trans.png)
[英]How to pass JSON format Data to server from RESTful client in java.This is for POST method in Activity
[英]How to pass JSON object to server from RESTful client in java
我正在創建一個Web應用程序。 我想使用Java SE應用程序執行管理操作。 為此,我在SE項目中創建了RESTful ShoppingAdminClient
。 我需要將JSON對象從客戶端傳遞到服務器。 我嘗試過這個
public static void main(String[] args) throws JSONException {
ShoppingAdminClient sac = new ShoppingAdminClient();
JSONObject jo = new JSONObject();
jo.put("itemName", "Itemms");
sac.create_JSON(jo);
}
但是我有以下例外,
Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class shoppingadmin.Item, and MIME media type, application/json, was not found
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)
at com.sun.jersey.api.client.Client.handle(Client.java:648)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:563)
at shoppingadmin.ShoppingAdminClient.create_JSON(ShoppingAdminClient.java:69)
at shoppingadmin.ShoppingAdmin.main(ShoppingAdmin.java:27)
Caused by: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java type, class shoppingadmin.Item, and MIME media type, application/json, was not found
at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:288)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:204)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
... 6 more
Java Result: 1
如何將JSON類型的對象傳遞給服務器?
提前致謝!
對於Jersey客戶端,您可以創建一個Jersey 客戶端實例以將JSON發布到服務器。 因此,為了以JSON格式發送,您可以使用Jackson JSON庫 ,並且可以通過添加Jersey-JSON jar將其與Jersey捆綁在一起。 您還需要添加Jersey客戶依賴項。
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.17</version>
</dependency>
然后您的客戶端代碼將如下所示:
public String requestResource(String baseURL, String path) {
Client wsClient = Client.create();
WebResource rs = wsClient.resource(baseURL);
String response = rs.path(path).type(MediaType.APPLICATION_JSON).post(String.class, item);
return response;
}
請注意, type
方法中的MediaType.APPLICATION_JSON
指定數據格式。 此item
包含您要發送到服務器的數據。 另外,不要忘記將以下行放在web.xml
以便所有POJO類都將自動序列化為JSON。
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.