curl命令如何转换为Java代码?

问题描述:

我能找到一些解决方案,但没有人为我工作。我是Java新手,迄今为止在Java中使用curl还没有成功。curl命令如何转换为Java代码?

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

JSON文件。

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

任何帮助将非常感激。

+1

你是什么意思,它是如何翻译? – Carcigenicate

+1

你问如何从java启动curl或如何复制curl在java中的功能? – bradimus

+3

[将curl调用转换为java urlconnection调用]可能重复(http://stackoverflow.com/questions/15684846/convert-curl-call-into-java-urlconnection-call) –

最简单的方法是从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是你的shell的位置。 -c之后执行命令。

当然,如果你的shell路径将保持不变,你可以将你的命令移动到某种字符串常量,也可以提取执行命令的实用程序方法。

我已经与Spring的RestTemplate很好的经验,这里有一个例子:

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); 
+0

感谢您的回复,这看起来像一个字符串正在发送。我将如何改变这个使用curl命令中的--data-binary。 – konopoly

+0

如果文件包含原始Json,您将读取该文件并将其转换为字符串。 –