[英]Java HTTP POST request code equivalent to curl call
curl -X POST --header "Content-Type: text/plain" --header "Accept: application/json" -d "HELLO THERE" "http://localhost:8080/rest/items/Echo_Living_Room_TTS"
I want to write Java code that does the same thing as this curl invocation.我想编写与此 curl 调用执行相同操作的 Java 代码。 Here's what I've written so far:
这是我到目前为止所写的:
URL myurl =new URL("http://localhost:8080/rest/items/Echo_Living_Room_TTS");
HttpURLConnection connection = (HttpURLConnection) myurl.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type","text/plain");
connection.connect();
String urlParameters = "HELLO THERE";
byte[] postData = urlParameters.getBytes( StandardCharsets.UTF_8 );
if(something happens) {
try( DataOutputStream wr = new DataOutputStream( connection.getOutputStream())) {
wr.write( postData );
}
}
connection.disconnect();
Have I done it right?我做对了吗? Are there any mistakes or omissions?
是否有任何错误或遗漏?
Ok seems like I made it works:好吧,好像我让它工作了:
URL myurl =new URL("http://localhost:8080/rest/items/Echo_Living_Room_TTS");
HttpURLConnection connection = (HttpURLConnection) myurl.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type","text/plain");
connection.setRequestProperty("Accept","application/json");
String mystring = "whatever";
byte[] postData = mystring.getBytes( StandardCharsets.UTF_8 );
int lenght = postData.length;
connection.setFixedLengthStreamingMode(lenght);
connection.connect();
try(OutputStream os = connection.getOutputStream()) {
os.write( postData );
}
connection.disconnect();
thank you all谢谢你们
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.