gpt4 book ai didi

java - 如何使用 HttpUrlConnection 在 POST 请求中发送请求参数

转载 作者:行者123 更新时间:2023-11-30 05:03:34 27 4
gpt4 key购买 nike

我需要向 URL 发送 POST 请求并发送一些请求参数。我为此使用 HttpURLConnectionAPI。但我的问题是我没有在 servlet 中获得任何请求参数。尽管我看到参数存在于请求正文中,但当我使用 request.getReader 打印请求正文时。以下是客户端代码。任何机构都可以指定这是否是在 POST 请求中发送请求参数的正确方法吗?

String urlstr = "http://serverAddress/webappname/TestServlet";

String params = "&paramname=paramvalue";

URL url = new URL(urlstr);

HttpURLConnection urlconn = (HttpURLConnection) url.openConnection();

urlconn.setDoInput(true);

urlconn.setDoOutput(true);

urlconn.setRequestMethod("POST");

urlconn.setRequestProperty("Content-Type", "text/xml");

urlconn.setRequestProperty("Content-Length", String.valueOf(params.getBytes().length));

urlconn.setRequestProperty("Content-Language", "en-US");

OutputStream os = urlconn.getOutputStream();

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));

writer.write(params);

writer.close();

os.close();

最佳答案

为了更简洁,您可以编码以发送值。

String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");

URL url = new URL("http://yourserver.com/whatever");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);

关于java - 如何使用 HttpUrlConnection 在 POST 请求中发送请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5859667/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com