如何使用Angular js将二进制数据发送到API

时间:2016-01-07 16:36:45

标签: angularjs api ionic

我正在尝试将图像二进制文件发送到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
    });

1 个答案:

答案 0 :(得分:0)

好吧,首先,看起来你要添加data:image/jpeg;base64前缀两次。进入getPicture(options).then()后,构建请求URL时也是如此。使用一些浏览器开发工具来检查您的请求并验证它是您所期望的。

编辑: 它看起来似乎API可能期望POST请求将图像数据作为多部分表单数据?不完全确定,文档似乎不完整。