gpt4 book ai didi

java - HttpURLConnection 即使在 setDoOutput(true)、setRequestMethod ("POST") setRequestProperty("Content

转载 作者:行者123 更新时间:2023-11-29 05:54:37 25 4
gpt4 key购买 nike

代码如下:

String Surl = "http://mysite.com/somefile";
String charset = "UTF-8";
query = String.format("param1=%s&param2=%s",
URLEncoder.encode("param1", charset),
URLEncoder.encode("param2", charset));

HttpURLConnection urlConnection = (HttpURLConnection) new URL(Surl + "?" + query).openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setDoOutput(true);
urlConnection.setUseCaches(false);
urlConnection.setAllowUserInteraction(false);
urlConnection.setRequestProperty("Accept-Charset", charset);
urlConnection.setRequestProperty("User-Agent","<em>Android</em>");
urlConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=" + charset);
urlConnection.connect();

上面仍然执行GET 请求。我在服务器上使用 PHP,并且能够通过 $_GET 变量而不是 $_POST 变量访问查询的“name=value”参数
在 2.3.7(设备)上测试。

我错过了什么?

最佳答案

当您在 url 中发送参数时,它们将被放入 GET 变量中。您应该在请求的 POST 正文中发布参数以实现您正在寻找的内容。您应该在 connect() 调用之前添加以下内容并删除“?” + 从 url 查询。

    urlConnection.setRequestProperty("Content-Length", String.valueOf(query.getBytes().length));            
urlConnection.setFixedLengthStreamingMode(query.getBytes().length);

OutputStream output = new BufferedOutputStream(urlConnection.getOutputStream());
output.write(query.getBytes());
output.flush();
output.close();

关于java - HttpURLConnection 即使在 setDoOutput(true)、setRequestMethod ("POST") setRequestProperty("Content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12629283/

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