Microsoft Translator Text API не работает

Я хочу использовать Microsoft Translator API, но не могу его использовать.

Я создал учетную запись Microsoft Azure, как указано в документации (http://docs.microsofttranslator.com/text-translate.html), и я создал ресурс.

Когда я вызываю веб-службу, чтобы получить токе доступа, каждый раз я получаю исключение из-за тайм-аута.

Это мой код (это Apex, похожий на Java):

Http h = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('POST');
req.setHeader('Content-Length', '3495');
req.setEndpoint('https://api.cognitive.microsoft.com/sts/v1.0/issueToken?Subscription-Key=[myAPIKey]');
req.setTimeout(20000);
HttpResponse res = h.send(req);

Если я удалю свой ключ API или укажу длину содержимого из заголовка, я получаю сообщение об ошибке от Microsoft.

Вы знаете, почему я это получаю?

Спасибо


person Aurélien Laval    schedule 26.03.2017    source источник


Ответы (2)


Вы должны заменить [myAPIKey] правильным ключом. Вы можете получить его через https://www.microsoft.com/cognitive-services.

введите здесь описание изображения

РЕДАКТИРОВАТЬ. Приведенный выше ответ относится к операциям GET. Для POST вы должны включить заголовок Ocp-Apim-Subscription-Key:

Http h = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('POST');
req.setHeader('Content-Length', '3495');
req.setHeader('Ocp-Apim-Subscription-Key', '[INSERT_HERE_YOUR_TOKEN]');
req.setEndpoint('https://api.cognitive.microsoft.com/sts/v1.0/issueToken');
req.setTimeout(20000);
HttpResponse res = h.send(req);
person Thiago Custodio    schedule 26.03.2017
comment
Хорошо, но почему это работает, если я использую эту онлайн-службу аутентификации токена (docs.microsofttranslator.com/oauth- token.html) с полем ввода? - person Aurélien Laval; 27.03.2017
comment
Спасибо за помощь. Я уже получил ключ, зачем мне запрашивать другой? А что мне взять, пожалуйста, в моем случае? Я не вижу API переводчика. Орелиен - person Aurélien Laval; 28.03.2017

Теперь он работает нормально.

Я редактирую свой код, и все в порядке:

HttpRequest req = new HttpRequest();
req.setMethod('GET');
req.setEndpoint(theURL);
req.setHeader('Content-Type','application/xml');
Http binding = new Http();
HttpResponse res = binding.send(req);

Спасибо

person Aurélien Laval    schedule 04.04.2017