Получена неверная полезная нагрузка JSON.Невозможно разобрать номер (Google Vision API) - PullRequest
0 голосов
/ 25 сентября 2019

Я получаю ошибку:

Invalid JSON payload received. Unable to parse number. INVALID_ARGUMENT

Я получил ключ и все, и у меня все еще та же ошибка возврата.Несколько предложений - сначала изменить размер изображения, чтобы оно меньше соответствовало пределу изображения в 4 МБ.

Я также попытался эмулировать тот же запрос JSON, исходящий из их документов.Но все еще есть та же проблема.https://cloud.google.com/vision/docs/drag-and-drop

Вот код, который я использую: (Я получил образец от Акшая Кадама)

        me.detection_types = {
        LABEL_DETECTION: 'label',
        DOCUMENT_TEXT_DETECTION: 'text',
        LOGO_DETECTION: 'logo',
        LANDMARK_DETECTION: 'landmark'
        };

        var api_key = '';
        $scope.takePicture = function(){

            var options = {
            destinationType: Camera.DestinationType.DATA_URL,
            sourceType: Camera.PictureSourceType.CAMERA,
            targetWidth: 150,
            targetHeight: 150,
            correctOrientation: true,
            cameraDirection: 0,
            allowEdit: true,
            encodingType: Camera.EncodingType.JPEG,
            quality: 25
            };

            $cordovaCamera.getPicture(options).then(function(imagedata){

                me.current_image = "data:image/jpeg;base64," + imagedata;
                me.image_description = '';
                me.locale = '';

                var vision_api_json = {
                  "requests":[
                    {
                      "image":{
                        "content": imagedata
                      },
                      "imageContext": {
                        "cropHintsParams": {
                          "aspectRatios": [
                            0.8,
                            1,
                            1.2
                          ]
                        }
                      },
                      "features":[
                        {
                          "type": me.detection_type,
                          "maxResults": 1
                        }
                      ]
                    }
                  ]
                }

                var file_contents = JSON.stringify(vision_api_json);                

                $cordovaFile.writeFile(
                    cordova.file.applicationStorageDirectory,
                    'file.json',
                    file_contents,
                    true
                ).then(function(result){                    
                    var headers = {
                        'Content-Type': 'application/json'                                      
                    };

                    options.headers = headers;

                    var server = 'https://vision.googleapis.com/v1/images:annotate?key=' + api_key;
                    var filePath = cordova.file.applicationStorageDirectory + 'file.json';                                      
                    $cordovaFileTransfer.upload(server, filePath, options, true)
                        .then(function(result){
                            alert(JSON.stringify(result))
                            var res = JSON.parse(result.response);
                            var key = me.detection_types[me.detection_type] + 'Annotations';

                            me.image_description = res.responses[0][key][0].description;
                      }




Нужна помощь.Спасибо!

ОБНОВЛЕНИЕ: я пытался добавить Content-Length и все еще имел ту же проблему.

...