2017-08-04 108 views
0

我尝试使用微软翻译-API做一个文本翻译器应用程序,但我不能够接收来自该API的任何回应,我总是得到这个消息:微软Azure翻译Android的API不工作

[微软翻译-API]错误检索翻译:无法解析主机“datamarket.accesscontrol.windows.net”:没有与主机名

即使我已经给正确的客户端ID和客户端密钥ID相关联的地址。我试过this link但我不知道把JSON-Simple.jar文件放在哪里。我也试过this link,但仍然没有成功。我贴我的代码如下:

public String translateText() throws Exception { 
    Translate.setClientId("whateveritis"); 
    Translate.setClientSecret("whateveritis"); 

    translatedText = Translate.execute(
      userText.getText().toString(), 
      languages[sEnterLan.getSelectedItemPosition()], 
      languages[sTransLan.getSelectedItemPosition()]); 

    Language detectedLanguage = Detect.execute(userText.getText() 
      .toString()); 
    this.detectedLanguage = detectedLanguage.getName(Language.ENGLISH); 

    return translatedText; 
} 

通过调用上述功能,我可以收到翻译文本到字符串变量,但每一次我得到一个异常。

回答

0

根据您的代码和参考链接,我认为您使用MS Azure翻译API的第三方Java包装boatmeme/microsoft-translator-java-api。然而,这是一个旧的Java包装器,它覆盖旧站点Azure datamarket旧的&不可用的API。这个网站有一个通知,所有的原始API已经被迁移到Azure订阅。

DataMarket和Data Services正在退役,并将在2016年12月31日后停止接受新订单。现有订阅将从2017年3月31日起退休并取消。如果您想继续提供服务,请联系您的服务提供商。

所以,我建议你可以尝试参考我的回答对其他SO线程Microsoft Translator API Java, How to get client new ID with Azure创建在Azure门户翻译文本API认知服务,并通过新的REST API使用它。

希望它有帮助。

+0

是的我也在官方网站上看到过这条消息,但是你告诉我的是免费的吗? –

+0

@rajatsingh除了F0定价层之外,还不免费。 –

+0

好的,谢谢你的回答 –