|
|
package UnitTest;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.http.HttpRequest;
|
|
|
import cn.hutool.http.HttpResponse;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
|
public class UploadMaxKBFile {
|
|
|
|
|
|
//获取身份识别码接口
|
|
|
private static final String baseUrl = "http://10.10.14.206:8080";
|
|
|
private static final String Authorization_URL = baseUrl + "/api/user/login";
|
|
|
//获取身份识别时登录的用户名
|
|
|
private static final String Authorization_USERNAME = "admin";
|
|
|
//获取身份识别时登录的密码
|
|
|
private static final String Authorization_PASSWORD = "Dsideal4r5t6y7u!@#";
|
|
|
|
|
|
//知识库上传文档接口地址 知识库id,不知道id的可以从知识库的地址栏获取
|
|
|
static String zskId = "409225d8-c352-11ef-a419-0242ac120003";
|
|
|
|
|
|
//知识库url上传地址
|
|
|
static String qaUrl = baseUrl + "/api/dataset/" + zskId + "/document/qa";
|
|
|
|
|
|
public static void main(String[] args) throws Exception {
|
|
|
//获取身份识别
|
|
|
String authCode = getAuthorization(Authorization_USERNAME, Authorization_PASSWORD);
|
|
|
System.out.println("Authorization_CODE:" + authCode);
|
|
|
//获取知识库上传文档接口
|
|
|
String uploadFile = "D:\\dsWork\\QingLong\\Doc\\MaxKB\\各学校人员和班级统计【结果】.xlsx";
|
|
|
//使用hutool工具箱里面的httpPost功能,向指定的接口发起上传文件的请求,在Header中携带参数authCode
|
|
|
HttpResponse response = HttpRequest.post(qaUrl)
|
|
|
// 添加header
|
|
|
.header("Authorization_CODE", authCode)
|
|
|
// 添加文件
|
|
|
.form("file", new File(uploadFile))
|
|
|
.execute();
|
|
|
|
|
|
// 获取响应状态码
|
|
|
int status = response.getStatus();
|
|
|
// 获取响应内容
|
|
|
String result = response.body();
|
|
|
|
|
|
System.out.println("Status: " + status);
|
|
|
System.out.println("Response: " + result);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 发送请求获取识别码
|
|
|
*
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public static String getAuthorization(String username, String password) {
|
|
|
JSONObject requestBody = JSONUtil.createObj()
|
|
|
.set("username", username)
|
|
|
.set("password", password);
|
|
|
|
|
|
try {
|
|
|
HttpResponse response = HttpRequest.post(Authorization_URL)
|
|
|
.header("Content-Type", "application/json")
|
|
|
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36")
|
|
|
.header("Origin", baseUrl)
|
|
|
.header("Referer", baseUrl + "/ui/login")
|
|
|
.body(requestBody.toString())
|
|
|
.timeout(10000) // 可选:设置超时时间(毫秒)
|
|
|
.execute();
|
|
|
|
|
|
// 详细的状态处理
|
|
|
if (response.isOk()) {
|
|
|
String body = response.body();
|
|
|
if (StrUtil.isBlank(body)) {
|
|
|
throw new RuntimeException("响应内容为空");
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
JSONObject responseJson = JSONUtil.parseObj(body);
|
|
|
String data = responseJson.getStr("data");
|
|
|
if (StrUtil.isBlank(data)) {
|
|
|
throw new RuntimeException("未获取到data字段");
|
|
|
}
|
|
|
return data;
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException("解析响应JSON失败: " + e.getMessage());
|
|
|
}
|
|
|
} else {
|
|
|
String errorBody = response.body();
|
|
|
throw new RuntimeException(String.format("请求失败 [%d]: %s",
|
|
|
response.getStatus(),
|
|
|
StrUtil.isBlank(errorBody) ? "无错误信息" : errorBody));
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException("获取Authorization失败: " + e.getMessage(), e);
|
|
|
}
|
|
|
}
|
|
|
} |