我试图从java向discord api发送https请求,但discord用403响应。
我的代码是:
String query = "client_id=id" +
"&client_secret=secret" +
"&grant_type=authorization_code" +
"&code=" + code +
"&redirect_uri=" + URLEncoder.encode("https://discordapi.tridentgames.eu/oauth2", StandardCharsets.UTF_8.toString());
HttpsURLConnection connection = (HttpsURLConnection) new URL("https://discord.com/api/oauth2/token").openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-length", String.valueOf(query.length()));
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setDoOutput(true);
connection.setDoInput(true);
DataOutputStream output = new DataOutputStream(connection.getOutputStream());
output.writeBytes(query);
output.close();
DataInputStream input = new DataInputStream(connection.getInputStream());
for (int c = input.read(); c != -1; c = input.read())
System.out.print((char) c);
input.close();
它在翼手龙的码头集装箱中运行。我尝试执行来自postman的相同请求,这是正常的,即使我尝试从postman重新创建403错误时失败了。我还试图更改url,但结果是相同的,即使只有 https://discord.com
. 我还尝试从docker容器中 curl discord api,结果没有问题。此外,该代码基于我以前的node.js代码,它工作起来没有任何问题。
有人知道我的要求有什么问题吗?
暂无答案!
目前还没有任何答案,快来回答吧!