-1

I was able to locate some solutions, but none have worked for me. I am new to Java and have had no success so far with curl in Java.

curl -X POST -H "Content-Type: application/json" -o output.json --data-binary @input.json http://webaddress.com

The JSON file.

{
   "firstNumber": "00",
   "secondNumber": "12",
   "Type": "MyType",
   "data": [0,0,0,0,0]
}

Any help would be really appreciated.

konopoly
  • 155
  • 1
  • 1
  • 10

2 Answers2

0

The easiest way is to invoke the command from java:

Process proc = 
    run.exec(new String[] {
     "/bin/sh", 
     "-c",
     "curl -X POST -H 'Content-Type: application/json' -o output.json --data-binary @input.json http://webaddress.com"
    });

/bin/sh is the location of your shell. -c executes the commands after.

Of course, move your command to some kind of string constant and also you may extract a utility method for executing commands, if your shell path will remain the same.

victor175
  • 624
  • 3
  • 10
  • 23
0

I've had good experience with Spring's RestTemplate, here's a sample:

JSONObject request = new JSONObject();
request.put("attribute1", "value");
request.put("attribute2", "value2");

RestTemplate restTemplate=new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(request.toString(), headers);

ResponseEntity<String> loginResponse = restTemplate.exchange(urlString, HttpMethod.POST, entity, String.class);
Daniel Arechiga
  • 847
  • 7
  • 19