HTTP-запрос - всегда (в день) один и тот же ответ - PullRequest
0 голосов
/ 07 ноября 2018

Краткое изложение проблемы

Я делаю HTTP-POST-запрос (загрузите изображение с моей веб-камеры для идентификации лиц) в API «Службы познания Microsoft». Обычно это работает -> Я получаю действительный и правильный ответ на первый (!) Запрос каждого дня. Однако после этого первого запроса я получаю для всех других запросов (с разными картинками) всегда один и тот же ответ (Я получаю тот же ответ, что и для первого запроса в этот день) Интересно: я делаю новый запрос на следующий день -> снова я получаю правильный ответ на первый запрос

Моя система и что я пытаюсь сделать

Я запускаю Raspbian на Raspberry pi 3 в сочетании с программным обеспечением для умного дома iobroker.

У меня есть веб-камера, которая отправляет изображение в файл http://:1024/photo.jpg Это изображение отправляется в Microsoft Cognitive Services, чтобы проверить, найдено ли «лицо» на этом изображении. Если найденное лицо, сервер отправляет в ответе несколько сведений об идентифицированном лице (например, «faceId» и несколько атрибутов лица, таких как «возраст», «пол», «улыбка»,….

Описание проблемы и запроса

Вот запрос, который я отправляю в когнитивные службы Microsoft:

var request = require('request');

// Replace <Subscription Key> with your valid subscription key.
const subscriptionKey = '<my_API_key>';

// You must use the same location in your REST call as you used to get your
// subscription keys. For example, if you got your subscription keys from
// westus, replace "westcentralus" in the URL below with "westus".
const uriBase = 'https://westeurope.api.cognitive.microsoft.com/face/v1.0/detect';

var imageUrl =
    'http://<myIP>:1024/photo.jpg' 
    // Request parameters.
const params = {
    'returnFaceId': 'true',
    'returnFaceLandmarks': 'false',
    'returnFaceAttributes': 'age,gender,headPose,smile,facialHair,glasses,' +
        'emotion,hair,makeup,occlusion,accessories,blur,exposure,noise'
};

const options = {
    uri: uriBase,
    qs: params,

    body: '{"url": ' + '"' + imageUrl + '"}',
    headers: {
        'Content-Type': 'application/json',
        'Cache-Control': 'no-store, max-age=0, must-revalidate', 
        'Pragma' : 'no-cache',
        'Ocp-Apim-Subscription-Key' : subscriptionKey
    }
};
console.log("***starte hier request hochladen ********")
request.post(options, (error, response, body) => {
  if (error) {
    console.log('Error: ', error);
    console.log("***Fehler Zeile 42 *******")
    return;
  }

Итак, как уже упоминалось: Первый (!) Запрос каждого дня работает отлично - если на картинке есть лицо, ответ содержит всю информацию об идентифицированном лице. Тем не менее, каждый другой запрос, который я делаю в этот день, приносит точно такой же ответ - это означает, что - даже если на картинке иное лицо (или вовсе нет лица), я всегда получаю тот же ответ, что и на первый запрос что то. Возможно, в этом проблема: URL и имя файла, которое я загружаю, всегда одинаковы, но, конечно, содержимое файла (photo.jpg) меняется при каждом запросе

Интересно, сейчас

  • Если эта проблема исходит от сервера (или прокси-сервера?), То сервер использует своего рода кеш и всегда (на один день) дает один и тот же ответ

    • если это проблема клиента (моя Raspberry), которая использует своего рода кеш и загружает всегда один и тот же (первый день) файл

(но я предполагаю, что это проблема клиента (например, iobroker или Raspbian), потому что если мой сервер (где хранится photo.jpg) находится в автономном режиме, сценарий js моего узла работает без каких-либо сообщений об ошибках.

Я действительно ценю любое предложение или идею, как это решить. Если вам нужна дополнительная информация - пожалуйста, дайте мне знать

С наилучшими пожеланиями Шредингер

...