让天蓝色翻译器与Android

时间:2017-08-28 21:13:08

标签: java android language-translation microsoft-translator

我的Android应用程序使用旧的微软翻译器,但我有 让应用程序使用新的认知服务的问题。

首先,我得到了一个新的azure翻译帐户,其中包含以下值 (这些不是真正的价值)

姓名:MYTranslateAcct

资源组:翻译

订阅ID:981h5ce7-7ac7-4f6f-b4a5-ff04dc9e4266

key1 d122230418a8479ab5c06f2f1fca664c

key2 39c1f187o9814f4e983jba9eedd2e2c7

我的第一步是尝试获取令牌。微软有关于做的文档 这在JAVA中,但不在Android环境中。我挖了一下然后 把一些代码放在一起,但它不起作用。一个问题是 docs使用我在帐户中没有的条款,例如" app-id"和 "键&#34 ;.我没有那些东西 - 我只有价值清单 上方。

这是我的代码。 。

class translateMessage extends AsyncTask<Void, Void, String>
{
    String retString;
    String inString = null;

    translateMessage(String inString) { this.inString = inString; }
    @Override
    protected String doInBackground(Void... arg0)
    {
        try
        {


            String key = "881b5ce7-9ac7-4f6f-b4a5-ff04dc9e3199";
            String authenticationUrl = "https://api.cognitive.microsoft.com/sts/v1.0/issueToken";
            HttpsURLConnection authConn = (HttpsURLConnection) new URL(authenticationUrl).openConnection();
            authConn.setRequestMethod("POST");
            authConn.setDoOutput(true);
            authConn.setRequestProperty("Ocp-Apim-Subscription-Key", key);
            IOUtils.write("", authConn.getOutputStream(), "UTF-8");       //following line of code gets the exception . . .
            String token = IOUtils.toString(authConn.getInputStream(), "UTF-8");  //this blows
       }
        catch (Exception e)
        {
            String myString = e.getMessage();
            String aString = "look at e";

        }
        return retString;
    }

    @Override
    protected void onPostExecute(String result)
    {
        String debugStr = result;
        translation.setText(result);
    }
}
     

以下是例外。 。

     

java.io.FileNotFoundException:https://api.cognitive.microsoft.com/sts/v1.0/issueToken

我做错了什么? 是否有人知道使用新服务的任何有效的Android java代码?

1 个答案:

答案 0 :(得分:0)

我在Azure支持上发布了这个,有人在一小时内打电话给我。我错了钥匙。获得翻译认知帐户后,您将获得Key1和Key2。它们中的任何一个都可以工作。所以代码是一个有用的代码,可以获得一个令牌。