gpt4 book ai didi

java - 如何修复 "401 Unauthorized. No Api Key provided"

转载 作者:行者123 更新时间:2023-12-02 09:39:47 27 4
gpt4 key购买 nike

我正在尝试使用java中的api来提取数据。执行此操作时,API 将返回 401:未经授权。我目前注册为管理员用户,并使用 api key 作为 token 。我还尝试使用声明我的 token 并使用 setRequestProperty("Authorization", "token", + access-token)。你知道我可能做错了什么吗?

我也尝试过使用 cURL 和 UI 来达到类似的效果。我已经得到了我期望的输出,但在 java 中这是一个身份验证问题

public static void main(String[] args) {
// TODO Auto-generated method stub
//build each line and have a response to it
BufferedReader reader;
String access_token = "abcde123 ";
String line;
StringBuffer responseContentReader = new StringBuffer();
try {
//URL url = new URL("https://testurl.com");

connection = (HttpsURLConnection) url.openConnection();

connection.setRequestProperty("Authorization", "Token" + access_token);


//here we should be able to "request" our setup
//Here will be the method I will use
connection.setRequestMethod("GET");


//after 5 sec if the connection is not successful time it out
connection.setConnectTimeout(7000);
connection.setReadTimeout(7000);

int status = connection.getResponseCode();
//System.out.println(status); //here the connect was established output was 200 (OK)

//here we are dealing with the connection isnt succesful
if (status >299) {
reader = new BufferedReader(new InputStreamReader(connection.getErrorStream()));
while ((line = reader.readLine()) != null) {
responseContentReader.append(" ");
responseContentReader.append(line);
responseContentReader.append("\n");
}
reader.close();
//returns what is successful
}else {
reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = reader.readLine()) != null) {
responseContentReader.append(" ");
responseContentReader.append(line);
responseContentReader.append("\n");
}
reader.close();
}
System.out.println(responseContentReader.toString());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}finally {
connection.disconnect();
}
}

}

我从控制台得到的输出是

{"success":"false","error":"unauthorized","message":"401 Unauthorized. No API key provided."}

最佳答案

您正在 curl 命令中设置 X-Risk-Token header 。在 Java 中你需要做同样的事情:

connection.setRequestProperty("X-Risk-Token", access_token); 

关于java - 如何修复 "401 Unauthorized. No Api Key provided",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57191786/

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