我正在尝试将图像二进制文件发送到api。
api有一个模式,你可以发送一个网址,如果我这样做,代码工作正常。所以现在我想从html画布发送二进制图像。这是api的文档,因此您可以看到参数https://dev.havenondemand.com/apis/ocrdocument#request
调用getOCR方法时出现错误提示。这让我觉得api调用没有正确。请帮助。
这是我的发送功能的样子。
$scope.getOCR = function(imageData){
var apikey = 'xxxxxx';
var requestString = 'https://api.havenondemand.com/1/api/sync/ocrdocument/v1?apikey='+ apikey +'&file='+ "data:image/jpeg;base64," + imageData;
$http.get(requestString).then(function(resp) {
alert(angular.fromJson(resp.data).text_block[0]['text']);
}, function(err) {
alert('error');
})
}
这就是我调用方法时的样子
$cordovaCamera.getPicture(options).then(function(imageData) {
$scope.imgURI = "data:image/jpeg;base64," + imageData;
$scope.getOCR(imageData);
},
function(err) {
// An error occured. Show a message to the user
});
答案 0 :(得分:0)
好吧,首先,看起来你要添加data:image/jpeg;base64
前缀两次。进入getPicture(options).then()
后,构建请求URL时也是如此。使用一些浏览器开发工具来检查您的请求并验证它是您所期望的。
编辑: 它看起来似乎API可能期望POST请求将图像数据作为多部分表单数据?不完全确定,文档似乎不完整。