Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to submit data with Jersey client POST method

Tags:

I am new to Jersey. I need to implement a Jersey client to submit data with POST method. The curl command is:

curl -d '{"switch": "00:00:00:00:00:00:00:01", "name":"flow-mod-1", "priority":"32768", "ingress-port":"1","active":"true", "actions":"output=2"}' http://localhost:8080/wm/staticflowentrypusher/json 

So I am trying to figure out how to use Jersey client to implement the above curl command.

So far I have done:

public class FLClient {  private static Client client; private static WebResource webResource; private static String baseuri = "http://localhost:8080/wm/staticflowentrypusher/json"; private static ClientResponse response; private static String output = null;  public static void main(String[] args) {     try {          client = Client.create();          webResource = client.resource(baseuri);                      // implement POST data       } catch (Exception e) {         e.printStackTrace();     } }  } 

Can someone help me with it?

like image 495
Li' Avatar asked Apr 29 '13 17:04

Li'


People also ask

What is the use of jersey client?

Jersey Client Example We can use the Jersey Client to call our web service and get a response programmatically. EmpClient. java: This is a sample java program through which are invoking our web service.

What is Jersey Apache client?

Jersey is a REST-client, featuring full JAX-RS implementation, neat fluent API and a powerfull filter stack. Apache Http Client is a HTTP-client, perfect in managing low-level details like timeouts, complex proxy routes and connection polling. They act on a different levels of your protocol stack.

What is Jersey webservice?

Jersey is Sun's production quality reference implementation for JSR 311: JAX-RS: The Java API for RESTful Web Services. Jersey implements support for the annotations defined in JSR-311, making it easy for developers to build RESTful web services with Java and the Java JVM.


1 Answers

Now I figure it out. Here is my solution:

public static void main(String[] args) {      try {         Client client = Client.create();          WebResource webResource = client.resource(baseuri);          String input = "{\"switch\": \"00:00:00:00:00:00:00:01\", "                 + "\"name\":\"flow-mod-1\", \"priority\":\"32768\", "                 + "\"ingress-port\":\"1\",\"active\":\"true\", "                 + "\"actions\":\"output=2\"}";          // POST method         ClientResponse response = webResource.accept("application/json")                 .type("application/json").post(ClientResponse.class, input);          // check response status code         if (response.getStatus() != 200) {             throw new RuntimeException("Failed : HTTP error code : "                     + response.getStatus());         }          // display response         String output = response.getEntity(String.class);         System.out.println("Output from Server .... ");         System.out.println(output + "\n");     } catch (Exception e) {         e.printStackTrace();     }  } 
like image 186
Li' Avatar answered Sep 22 '22 15:09

Li'