Java-通过POST方法轻松发送HTTP参数

我正在成功地使用此代码通过GET方法发送带有一些参数的HTTP请求

无效发送请求(字符串请求)
{
//即:请求=”http://example.com/index.php?param1=a&参数2=b&参数3=c”;
URL=新URL(请求);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setDoOutput(真);
connection.setInstanceFollowDirections(false);
connection.setRequestMethod(“GET”);
setRequestProperty(“内容类型”、“文本/普通”);
setRequestProperty(“字符集”、“utf-8”);
connection.connect();
}

现在我可能需要通过POST方法发送参数(即param1、param2、param3),因为它们很长。
我正在考虑向该方法添加一个额外的参数(即String httpMethod)

如何尽可能少地更改上述代码,以便能够通过GETPOST发送参数

我希望这会改变

连接.setRequestMethod(“GET”);

连接.setRequestMethod(“POST”);

本来可以做到这一点,但参数仍然通过GET方法发送

HttpURLConnection是否有任何方法可以帮助您?
有什么有用的Java构造吗

任何帮助都将不胜感激

在GET请求中,参数作为URL的一部分发送

在POST请求中,参数作为请求的主体发送,在头之后

要使用HttpURLConnection进行POST,需要在打开连接后将参数写入连接

这段代码应该让您开始:

String urlParameters=“param1=a&param2=b&param3=c”;
byte[]postData=urlParameters.getBytes(StandardCharsets.UTF_8);
int postDataLength=postData.length;
字符串请求=”http://example.com/index.php";
URL=新URL(请求);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
连接设置输出(真);
conn.setInstanceFollow(假);
conn.setRequestMethod(“POST”);
conn.setRequestProperty(“内容类型”、“应用程序/x-www-form-urlencoded”);
conn.setRequestProperty(“字符集”、“utf-8”);
conn.setRequestProperty(“内容长度”,Integer.toString(postDataLength));
conn.SETUSECHACHES(假);
try(DataOutputStream wr=newdataoutputstream(conn.getOutputStream())){
wr.write(postData);
}

发表评论