简体   繁体   English

Java HTTP POST请求代码相当于curl调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM