Я создал Rest API, используя Python Hug, который принимает список в качестве параметра.
Код 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. Когда вызывается API-интерфейс REST Python, и я печатаю длину списка на стороне python, длина элементов списка не совпадает, она составляет где-то около 500. Это связано с отправкой параметра в виде строки запроса в GET-запросе или существует проблема преобразования между Java arrayList и Python List?
System.out.println (textArr.size ()); # дает 17 (код Java)
print (len (textList)) # дает 543 (код Python)