我使用 Python Hug 创建了一个 Rest API,它接受一个列表作为参数。
Python REST API 代码
import hug
@hug.get('/myFunc/')
def myFunc(textList)
print(len(textList))
print(type(textList))
Java 代码
List<String> textArr = new ArrayList<String>();
File htmlsFolder = new File(#html Folder Path);
try {
File[] files = htmlsFolder.listFiles();
for (File file : files) {
html = new String(Files.readAllBytes(Paths.get(file.getPath())));
Document doc = Jsoup.parse(html);
textArr.add(doc.body().text().replaceAll("[\\n\\t\\r\\s+]", " "));
}
System.out.println(textArr.size());
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
HttpEntity<String> entity = new HttpEntity<String>(null, headers);
ResponseEntity<String> response = restTemplate.exchange("http://apiurl/myFunc?textList="+textArr.toString(), HttpMethod.GET, entity, String.class);
Java 代码从文件夹路径读取/解析 html 文件并将内容存储在 arrayList 中。如果有 17 个 html 文件,则 arrayList 的大小为 17。当调用 Python REST API 时,我在 python 端打印列表的长度,列表项的长度不一样,它在 500 左右。这是由于在 GET 请求中将参数作为查询字符串发送,还是 Java arrayList 和 Python List 之间存在转换问题?
System.out.println(textArr.size()); #gives 17(Java 代码)
print(len(textList)) #gives 543 (Python 代码)