2017-03-26 150 views
0

我想使用微软翻译API,但我能够使用它。微软翻译文本API不起作用

我创建了微软的Azure帐户作为文档(http://docs.microsofttranslator.com/text-translate.html)中规定,我创建了资源。

当我调用Web服务来获得访问土气,我每次都得到一个例外,因为超时..

这是我的代码(这是顶点,类似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密钥或我的内容lenght,我从微软

你知道一个错误,为什么我得到这样的吗?

感谢

回答

0

它现在有效。

修改我的代码,它是确定:

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); 

感谢

0

你应该用正确的键替换[myAPIKey。您可以通过https://www.microsoft.com/cognitive-services

enter image description here

编辑 答案上面是让操作相关的得到它。对于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); 
+0

好,但为什么它的工作原理,如果我使用网上令牌认证服务(http://docs.microsofttranslator.com/oauth- token.html)与输入字段? –

+0

我已编辑我的答案。请尝试一个。 –

+0

谢谢你的帮助。 我已经拿到了钥匙,我又何必要求别人呢? 而对于我来说,我已采取哪一个吗? 我没有看到翻译器API。 的Aurelien –