如何在 java 中存储来自 API 调用的变量
How to store variable from API call in java
public void getToken(String userID) throws URISyntaxException, IOException {
URIBuilder userBuild = new URIBuilder("https://api/token");
HttpPost post = new HttpPost(userBuild.build());
printPost(post);
}
public void printPost(HttpPost post) throws IOException {
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
}
所以,我想要实现的是,我想将“令牌”保存为一个变量。
例如,当我 运行 方法“getToken()”时,它打印如下:
{"token": "1234567" } 在控制台上。
但是,我该如何保存那个“1234567”呢?它与getHeaders()之类的东西有关吗?
提前致谢!
您应该将其解析为 JSON 并将此值存储在变量中,而不是打印响应:
您可以为此使用 Gson or Jackson 个库。
您可能需要看看序列化和反序列化。在这种情况下,您想反序列化 JSON 输出并将其转换为 Java 对象。通过这种方式,您可以轻松访问有关您的回复的任何内容。
在 Java 中执行此操作的常用方法是使用 Jackson ObjectMapper。尝试将您的响应变成一个 Java 对象并获取您需要的值。
public void getToken(String userID) throws URISyntaxException, IOException {
URIBuilder userBuild = new URIBuilder("https://api/token");
HttpPost post = new HttpPost(userBuild.build());
printPost(post);
}
public void printPost(HttpPost post) throws IOException {
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
}
所以,我想要实现的是,我想将“令牌”保存为一个变量。
例如,当我 运行 方法“getToken()”时,它打印如下: {"token": "1234567" } 在控制台上。
但是,我该如何保存那个“1234567”呢?它与getHeaders()之类的东西有关吗?
提前致谢!
您应该将其解析为 JSON 并将此值存储在变量中,而不是打印响应: 您可以为此使用 Gson or Jackson 个库。
您可能需要看看序列化和反序列化。在这种情况下,您想反序列化 JSON 输出并将其转换为 Java 对象。通过这种方式,您可以轻松访问有关您的回复的任何内容。
在 Java 中执行此操作的常用方法是使用 Jackson ObjectMapper。尝试将您的响应变成一个 Java 对象并获取您需要的值。