Ошибка при попадании в Google Vision Api - PullRequest
2 голосов
/ 24 сентября 2019
  const options = {
  hostname: 'https://vision.googleapis.com/v1/images:annotate?key=<some key>',
  method: 'POST',
  headers: {
    'Content-Type' : 'application/json'
  }
};

const req = http.request(options, (res : any) => {
  res.on('data', (chunk : any) => {
    console.log(`BODY: ${chunk}`);
  });
});

req.on('error', (e) => {
  console.log(e)
  console.error(`problem with request: ${e.message}`);
});

// Write data to request body
req.write(JSON.stringify(body))
req.end()

Я пытаюсь использовать одну из функций Google vision - определение текста.Но когда я когда-либо нажимаю на этот API, я получаю эту ошибку.Я дважды проверил URL и другие данные.

{ Error: getaddrinfo ENOTFOUND https://vision.googleapis.com/v1/images:annotate?key=<> https://vision.googleapis.
com/v1/images:annotate?key=<key>:80
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
  errno: 'ENOTFOUND',
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname:
   'https://vision.googleapis.com/v1/images:annotate?key=<key>',
  host:
   'https://vision.googleapis.com/v1/images:annotate?key=<key>',
  port: 80 }

Ответы [ 2 ]

2 голосов
/ 24 сентября 2019

Этот код должен работать, требуется только пара изменений, например, мы будем использовать модуль https, а не модуль http.

const https = require('https');

const options = {
    hostname: 'vision.googleapis.com',
    path: '/v1/images:annotate?key=' + API_KEY,
    method: 'POST',
    headers: {
        'Content-Type' : 'application/json'
    }
};

let data = "";
const req = https.request(options, (res: any) => {
    res.on('data', (chunk: any) => {
        data += chunk;
    });
    res.on('end', (chunk) => {
        console.log(`BODY: ${data}`);
    });
});

req.on('error', (e) => {
    console.log(e)
    console.error(`problem with request: ${e.message}`);
});

// Write data to request body
req.write(JSON.stringify(body))
req.end()
0 голосов
/ 24 сентября 2019

Попробуйте изменить запрос на:

  const options = {
  method: 'POST',
  headers: {
    'Content-Type' : 'application/json'
  }
};

const req = http.request(`https://vision.googleapis.com/v1/images:annotate?key=<some key>`, options, (res : any) => {
  res.on('data', (chunk : any) => {
    console.log(`BODY: ${chunk}`);
  });
});

, поскольку https://vision.googleapis.com/v1/images:annotate?key=<some key> - это полный URL-адрес, а не действительное имя хоста.

...