我正在成功地使用此代码通过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)
如何尽可能少地更改上述代码,以便能够通过GET或POST发送参数
我希望这会改变
连接.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);
}