OCR/test_tmp/test_upload.java
2025-05-13 11:07:14 +08:00

83 lines
3.5 KiB
Java

import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
/**
* 测试上传OCR结果到后端接口
*/
public class test_upload {
public static void main(String[] args) {
String jsonFilePath = "ocr_results/current_results.json";
String uploadUrl = "http://localhost:48080/admin-api/tblist/ecganalysisparas/parsePhotoCreateData";
try {
// 读取JSON文件内容
String jsonContent = new String(Files.readAllBytes(Paths.get(jsonFilePath)), StandardCharsets.UTF_8);
System.out.println("原始JSON内容: " + jsonContent);
// 解析JSON
ObjectMapper objectMapper = new ObjectMapper();
List<Map<String, Object>> results = objectMapper.readValue(jsonContent, List.class);
if (results.isEmpty()) {
System.out.println("没有OCR结果可上传");
return;
}
// 获取第一个结果
Map<String, Object> resultObject = results.get(0);
// 提取extracted_data部分
Map<String, Object> extractedData = (Map<String, Object>) resultObject.get("extracted_data");
// 添加额外信息
extractedData.put("file_path", resultObject.get("file_path"));
extractedData.put("process_time", resultObject.get("process_time"));
// 转换为符合接口的JSON
String uploadJson = objectMapper.writeValueAsString(extractedData);
System.out.println("上传的JSON内容: " + uploadJson);
// 创建HTTP客户端
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// 构建HTTP请求
HttpPost httpPost = new HttpPost(uploadUrl);
httpPost.setHeader("Content-Type", "application/json");
httpPost.setHeader("Accept", "application/json");
httpPost.setEntity(new StringEntity(uploadJson, StandardCharsets.UTF_8));
System.out.println("正在发送请求到: " + uploadUrl);
// 发送请求
try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
int statusCode = response.getStatusLine().getStatusCode();
HttpEntity entity = response.getEntity();
String responseBody = entity != null ? EntityUtils.toString(entity) : null;
System.out.println("状态码: " + statusCode);
System.out.println("响应内容: " + responseBody);
if (statusCode >= 200 && statusCode < 300) {
System.out.println("上传成功!");
} else {
System.out.println("上传失败!");
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}