我正在写我的许可证论文,今天我在试图运行我的程序时遇到了一个问题。我使用microsoft-translator-api将一些单词从罗马尼亚语翻译成英语,直到现在我对翻译没有任何问题,一切都很好,但从两天前开始,我注意到我得到了这个异常:
java.lang.Exception: [microsoft-translator-api] Error retrieving translation : Server returned HTTP response code: 400 for URL: https://datamarket.accesscontrol.windows.net/v2/OAuth2-13
at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:202)
at com.memetix.mst.translate.Translate.execute(Translate.java:61)
at com.utcn.translator.Translator.translate(Translator.java:16)
at com.utcn.sentenceXmlParser.main.main(main.java:19)
我的Translator类是这样的:
包com.utcn.translator;
import com.memetix.mst.detect.Detect;
import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;
public abstract class Translator {
public static String translate(String line) {
Translate.setClientId(/*my client id*/);
Translate.setClientSecret(/*my client secret*/);
String translatedText = null;
try {
translatedText = Translate.execute(line, Language.ROMANIAN,
Language.ENGLISH);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return translatedText;
}
}
有谁知道我怎么解决这个问题吗?
最诚挚的问候,罗克珊娜
我找到答案了!
首先,我调用了太多的微软api。在我简化之后,我清楚地看到了问题所在。我得到了另一个异常,因为"这是我的文本"似乎微软翻译api不能处理,它返回一个ClassCastException!
谢谢大家的回答!
问题很可能出在您的证书上。(ClientId
和ClientSecret
)。你可以尝试像下面这样设置凭据(取自这个线程)。
Translate.setClientId("client id you type in the web site");
Translate.setClientSecret("secret you type in the web site in Base 64 format");