与java应用程序集成时出现Bing转换器异常

与java应用程序集成时出现Bing转换器异常,java,azure,bing-translator-api,Java,Azure,Bing Translator Api,我正试图在我的java应用程序中集成bing translator。我已注册到Microsoft azure认知服务和Microsoft market place。 在执行下面的代码时 import com.memetix.mst.language.Language; import com.memetix.mst.translate.Translate; public class Main { public static void main(String[] args) {

我正试图在我的java应用程序中集成bing translator。我已注册到Microsoft azure认知服务和Microsoft market place。 在执行下面的代码时

import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;

public class Main {
    public static void main(String[] args) {
        try{
            Translate.setClientId(/* my Client Id */);
            Translate.setClientSecret(/* my Client Secret */);

            String translatedText = Translate.execute("Bonjour le monde", Language.FRENCH, Language.ENGLISH);

            System.out.println(translatedText);
        }
        catch(Exception e) {
            System.err.println("Exception: " + e.getMessage());
        }
    }
} 
我得到以下例外:

Page NoException in thread "main" 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 test.SimpleExcelTranalator.main(SimpleExcelTranalator.java:44)
Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: https://datamarket.accesscontrol.windows.net/v2/OAuth2-13
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at com.memetix.mst.MicrosoftTranslatorAPI.getToken(MicrosoftTranslatorAPI.java:139)
    at com.memetix.mst.MicrosoftTranslatorAPI.retrieveResponse(MicrosoftTranslatorAPI.java:160)
    at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:199)
    ... 2 more
Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: https://datamarket.accesscontrol.windows.net/v2/OAuth2-13
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at java.net.HttpURLConnection.getResponseCode(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
    at com.memetix.mst.MicrosoftTranslatorAPI.getToken(MicrosoftTranslatorAPI.java:138)
    ... 4 more

datamarket url是您获取客户id和密码的来源。那就是你要把你的翻译请求发送到的地方吗?应该是 ?

此外,datamarket也被弃用。您必须切换到Azure认知服务

根据您引用的包
com.memetix.mst.language.*
在您的代码中,我在上、上和上搜索并找到了其源代码。我查看了它的源代码,发现它包装了MS Translator文本API。库已过期,旧的REST API已过期,旧网站显示“MICROSOFT TRANSLATOR API现在可在AZURE门户上使用”“和“重要信息:需要AZURE帐户。请阅读开始门户的步骤。”因此,首先您需要拥有Azure订阅,以便在Azure门户上创建翻译文本API服务,然后编写代码来调用新的REST API。您可以参考下面另外两个SO线程的答案,了解如何使用新的RESTAPI并通过示例代码调用它

  • 我对的回答显示了新的RESTAPI用法
  • 我的答案包括我的示例代码,它展示了如何在Java中调用新的RESTAPI
  • 希望能有帮助