Публикация в Microsoft Cognitive Face API с использованием Ionic - AngularJS
В настоящее время я использую Ionic для разработки приложения распознавания лиц. Я использую Microsoft Face API для того же.
Моя проблема в том, что я продолжаю получать Error 400: Decoding error, image format unsupported.
Проведя некоторые исследования, я наткнулся на эту ссылку
Цитируя СНВ,
Когда вы отправляете двоичную полезную нагрузку, вам не следует кодировать ее в base64. Вот что вы могли бы сделать вместо этого..
URI uri = builder.build();
HttpPost request = new HttpPost(uri);
request.setHeader("Ocp-Apim-Subscription-Key", "...");
File file = new File("...");
FileEntity reqEntity = new FileEntity(file, ContentType.APPLICATION_OCTET_STREAM);
request.setEntity(reqEntity);
Цитирование END
С помощью Ionic/AngularJS захваченное изображение с помощью камеры устройства или выбранное из галереи изображений возвращается в виде строки base64. Поэтому я искал способы декодировать данные в двоичный файл, используя эту суть, но все равно не получилось.
Вот мой код контроллера, где я делаю вызов API.
$scope.postToAPI = function () {
// make http call to MS cognitive API
var formData = new FormData();
formData.append('file', $scope.picture);
$http.post($scope.cognitiveServices.endpoint, formData, {
headers: { 'Content-Type': 'application/octet-stream', 'Ocp-Apim-Subscription-Key':$scope.cognitiveServices.apiKey }
}).success(function (data) {
console.log(JSON.stringify(data));
alert("Awesome");
}).error(function (err) {
alert("Fail ->" + err.code + " " + err.message);
console.log("Some error occured");
});
}
я имею
- попробовал установить transform:angular.identity и Content-Type: не определено
- попытался отправить изображение без данных формы (просто случайная пробная версия)
- попытался преобразовать строку base64 в массив Uint8 (следуя решению этого SO вопроса)
Все мои попытки пока не увенчались успехом. Может кто-нибудь объяснить, что я делаю не так?
PS: это мой первый раз с Ionic Framework.