gpt4 book ai didi

java - Java 中的 HTTP POST 请求 .setRequestMethod() 不执行任何操作

转载 作者:行者123 更新时间:2023-12-01 15:30:47 24 4
gpt4 key购买 nike

我实在是为这件事抓狂了。

我尝试用 Java 发出 HTTP POST 请求,但它一直将其作为 GET 发送。我采用了几种不同的方式来发送 POST 请求,但所有这些方式最终都只是以 GET 方式发送。

这是我目前拥有的:

        URL url = new URL("https://api.soundcloud.com/oauth2/token");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);

OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.close();

// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
resp += line;
}
rd.close();

我在 StackOverflow 上的一篇文章中读到 conn.setDoOuput(true) 应该自动使连接成为 POST;但是,当我调试代码时, protected 成员 conn.method 保持为 GET。

我还尝试将 url.openConnection() 转换为 HttpURLConnection 并在其上调用 .setRequestMethod("POST") ,这对 conn.method 完全没有任何改变。

作为奖励,我正在尝试进行 soundcloud 身份验证,基本上我想到的所有方法都彻底失败了......也许有人对此有更好的解决方案?

最佳答案

您是否尝试过使用 SoundCloud 的 Java SDK?

https://github.com/soundcloud/java-api-wrapper

这应该会从您的代码中删除大部分 HTTP/OAuth2。

但是,即使您想要更多地控制自己所做的事情,使用适当的 HTTP 客户端库(例如 Apache 的)通常也是一个好主意,而不是尝试对抗最基本的 Java SE 支持。查看:http://hc.apache.org/httpcomponents-client-ga/index.html

关于java - Java 中的 HTTP POST 请求 .setRequestMethod() 不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528231/

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