Вызов API остального видео-интеллекта в JAVA
Я пытался вызвать остальные API видео-разведки через Java-программу, чтобы аннотировать локальный файл. Вот мой код:
byte[] data = Files.readAllBytes(path);
byte[] encodedBytes = Base64.encodeBase64(data);
URIBuilder builder = new URIBuilder("https://videointelligence.googleapis.com/v1beta2/videos:annotate");
URI uri = builder.build();
HttpPost request = new HttpPost(uri);
request.setHeader("Content-Type", "application/json");
request.setHeader("X-Goog-Api-Key",MyKey);
JSONObject json = new JSONObject();
JSONArray jsonArray = new JSONArray();
jsonArray.put("LABEL_DETECTION");
json.put("inputContent", encodedBytes);
json.put("features", jsonArray);
StringEntity reqEntity = new StringEntity(json.toString());
request.setEntity(reqEntity);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
Я получаю эту ошибку: "error": { "code": 400, "message": "Получена недопустимая полезная нагрузка JSON. Неизвестное имя \"input_content\": поле Proto не повторяется, не может начать список.
Может ли кто-нибудь помочь мне с этой ошибкой, пожалуйста? благодарю вас
1 ответ
Решение
Сообщение об ошибке не очень полезно. Проблема в том, что inputContent должен быть String
вместо byte[]
, Это сработало для меня:
String str = new String(encodedBytes, "UTF-8");
requestJson.put("inputContent", str);