目前,我正在使用Ionic开发面部识别应用。 我正在使用Microsoft的Face API。
我的问题是我不断获得Error 400: Decoding error, image format unsupported.
在做了一些研究之后,我遇到了这个link
引用START,
当您提交二进制有效负载时,您应不对其进行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);
引用结束
使用Ionic / AngularJS,使用Device Camera捕获的图像或从图像库中选择的图像以base64字符串的形式返回。所以我找到了使用这个gist将数据解码为二进制的方法,但仍然失败了。
这是我进行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");
});
}
我有
到目前为止我所有的尝试都失败了。有人可以解释我做错了吗?
P.S :这是我第一次使用Ionic框架。