WPS365
This commit is contained in:
@@ -30,10 +30,16 @@ public class WPS365ApiServiceImpl implements IWPS365ApiService {
|
|||||||
public JSONObject getUserInfo(String accessToken) {
|
public JSONObject getUserInfo(String accessToken) {
|
||||||
try {
|
try {
|
||||||
// WPS365用户信息API: GET /api/v1/user/info
|
// WPS365用户信息API: GET /api/v1/user/info
|
||||||
|
// 注意:如果此API不存在或需要不同的路径,请查看WPS365官方文档
|
||||||
String url = wps365Config.getApiBaseUrl() + "/user/info";
|
String url = wps365Config.getApiBaseUrl() + "/user/info";
|
||||||
return WPS365ApiUtil.httpRequest("GET", url, accessToken, null);
|
log.debug("调用用户信息API: {}", url);
|
||||||
|
JSONObject result = WPS365ApiUtil.httpRequest("GET", url, accessToken, null);
|
||||||
|
log.debug("用户信息API响应: {}", result);
|
||||||
|
return result;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("获取用户信息失败", e);
|
log.error("获取用户信息失败 - url: {}, error: {}",
|
||||||
|
wps365Config.getApiBaseUrl() + "/user/info", e.getMessage(), e);
|
||||||
|
// 不抛出异常,让调用方处理(使用降级方案)
|
||||||
throw new RuntimeException("获取用户信息失败: " + e.getMessage(), e);
|
throw new RuntimeException("获取用户信息失败: " + e.getMessage(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
@@ -140,19 +141,39 @@ public class WPS365ApiUtil {
|
|||||||
|
|
||||||
// 读取响应
|
// 读取响应
|
||||||
int statusCode = conn.getResponseCode();
|
int statusCode = conn.getResponseCode();
|
||||||
BufferedReader reader;
|
|
||||||
if (statusCode >= 200 && statusCode < 300) {
|
|
||||||
reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
|
|
||||||
} else {
|
|
||||||
reader = new BufferedReader(new InputStreamReader(conn.getErrorStream(), StandardCharsets.UTF_8));
|
|
||||||
}
|
|
||||||
|
|
||||||
StringBuilder response = new StringBuilder();
|
StringBuilder response = new StringBuilder();
|
||||||
String line;
|
|
||||||
while ((line = reader.readLine()) != null) {
|
try {
|
||||||
response.append(line);
|
BufferedReader reader;
|
||||||
|
InputStream inputStream;
|
||||||
|
|
||||||
|
if (statusCode >= 200 && statusCode < 300) {
|
||||||
|
inputStream = conn.getInputStream();
|
||||||
|
} else {
|
||||||
|
// 对于错误响应,尝试读取错误流
|
||||||
|
inputStream = conn.getErrorStream();
|
||||||
|
// 如果错误流为null,尝试读取正常流(某些服务器可能将错误信息放在正常流中)
|
||||||
|
if (inputStream == null) {
|
||||||
|
inputStream = conn.getInputStream();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果输入流仍然为null,说明无法读取响应
|
||||||
|
if (inputStream == null) {
|
||||||
|
log.warn("无法读取HTTP响应流,状态码: {}", statusCode);
|
||||||
|
response.append("无法读取响应内容");
|
||||||
|
} else {
|
||||||
|
reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
|
||||||
|
String line;
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
response.append(line);
|
||||||
|
}
|
||||||
|
reader.close();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("读取HTTP响应失败", e);
|
||||||
|
response.append("读取响应失败: ").append(e.getMessage());
|
||||||
}
|
}
|
||||||
reader.close();
|
|
||||||
|
|
||||||
String responseStr = response.toString();
|
String responseStr = response.toString();
|
||||||
log.info("刷新访问令牌响应: statusCode={}, response={}", statusCode, responseStr);
|
log.info("刷新访问令牌响应: statusCode={}, response={}", statusCode, responseStr);
|
||||||
@@ -205,25 +226,45 @@ public class WPS365ApiUtil {
|
|||||||
|
|
||||||
// 读取响应
|
// 读取响应
|
||||||
int statusCode = conn.getResponseCode();
|
int statusCode = conn.getResponseCode();
|
||||||
BufferedReader reader;
|
|
||||||
if (statusCode >= 200 && statusCode < 300) {
|
|
||||||
reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
|
|
||||||
} else {
|
|
||||||
reader = new BufferedReader(new InputStreamReader(conn.getErrorStream(), StandardCharsets.UTF_8));
|
|
||||||
}
|
|
||||||
|
|
||||||
StringBuilder response = new StringBuilder();
|
StringBuilder response = new StringBuilder();
|
||||||
String line;
|
|
||||||
while ((line = reader.readLine()) != null) {
|
try {
|
||||||
response.append(line);
|
BufferedReader reader;
|
||||||
|
InputStream inputStream;
|
||||||
|
|
||||||
|
if (statusCode >= 200 && statusCode < 300) {
|
||||||
|
inputStream = conn.getInputStream();
|
||||||
|
} else {
|
||||||
|
// 对于错误响应,尝试读取错误流
|
||||||
|
inputStream = conn.getErrorStream();
|
||||||
|
// 如果错误流为null,尝试读取正常流(某些服务器可能将错误信息放在正常流中)
|
||||||
|
if (inputStream == null) {
|
||||||
|
inputStream = conn.getInputStream();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果输入流仍然为null,说明无法读取响应
|
||||||
|
if (inputStream == null) {
|
||||||
|
log.warn("无法读取HTTP响应流,状态码: {}", statusCode);
|
||||||
|
response.append("无法读取响应内容");
|
||||||
|
} else {
|
||||||
|
reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
|
||||||
|
String line;
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
response.append(line);
|
||||||
|
}
|
||||||
|
reader.close();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("读取HTTP响应失败", e);
|
||||||
|
response.append("读取响应失败: ").append(e.getMessage());
|
||||||
}
|
}
|
||||||
reader.close();
|
|
||||||
|
|
||||||
String responseStr = response.toString();
|
String responseStr = response.toString();
|
||||||
log.debug("HTTP响应: statusCode={}, response={}", statusCode, responseStr);
|
log.debug("HTTP响应: statusCode={}, response={}", statusCode, responseStr);
|
||||||
|
|
||||||
if (statusCode < 200 || statusCode >= 300) {
|
if (statusCode < 200 || statusCode >= 300) {
|
||||||
throw new RuntimeException("HTTP请求失败: " + statusCode + ", response=" + responseStr);
|
throw new RuntimeException("HTTP请求失败: statusCode=" + statusCode + ", response=" + responseStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (responseStr == null || responseStr.trim().isEmpty()) {
|
if (responseStr == null || responseStr.trim().isEmpty()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user