Question

J'ai essayé le code suivant pour implémenter une application de traduction à l'aide de la bibliothèque API Microsoft Translator trouvée ici.J'ai une connexion Internet fonctionnelle et j'ai généré un identifiant client et un secret valides, mais chaque fois que j'essaie d'exécuter le code, j'obtiens le java.net.UnknownHostException.

Mon code :

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
             StrictMode.setThreadPolicy(policy);
             Translate.setClientId("Screened for the question"); //Change this
               Translate.setClientSecret("I have screened the client secret to ask in SO"); //change

               final TextView  text = (TextView) findViewById(R.id.textView1);
               Button Trans1 = (Button)findViewById(R.id.trans);
               Trans1.setOnClickListener(new View.OnClickListener(){
               public void onClick(View view) {
                   String word = "Hello";
                   try {
                   translatedText = Translate.execute(word, Language.ENGLISH, Language.GERMAN);
                      // text.setText(translatedText);
                   } catch (Exception e) {
                       e.printStackTrace();
                   }
               }
               });

Ma trace de pile :

04-11 14:19:41.711: W/System.err(3084): java.lang.Exception: [microsoft-translator-api] Error retrieving translation : Unable to resolve host "datamarket.accesscontrol.windows.net": No address associated with hostname
04-11 14:19:41.711: W/System.err(3084):     at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:202)
04-11 14:19:41.711: W/System.err(3084):     at com.memetix.mst.translate.Translate.execute(Translate.java:61)
04-11 14:19:41.711: W/System.err(3084):     at com.example.tanslator.TransActivity$1.onClick(TransActivity.java:45)
04-11 14:19:41.711: W/System.err(3084):     at android.view.View.performClick(View.java:3571)
04-11 14:19:41.711: W/System.err(3084):     at android.view.View$PerformClick.run(View.java:14247)
04-11 14:19:41.711: W/System.err(3084):     at android.os.Handler.handleCallback(Handler.java:605)
04-11 14:19:41.711: W/System.err(3084):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-11 14:19:41.711: W/System.err(3084):     at android.os.Looper.loop(Looper.java:137)
04-11 14:19:41.711: W/System.err(3084):     at android.app.ActivityThread.main(ActivityThread.java:4517)
04-11 14:19:41.711: W/System.err(3084):     at java.lang.reflect.Method.invokeNative(Native Method)
04-11 14:19:41.711: W/System.err(3084):     at java.lang.reflect.Method.invoke(Method.java:511)
04-11 14:19:41.711: W/System.err(3084):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
04-11 14:19:41.711: W/System.err(3084):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
04-11 14:19:41.711: W/System.err(3084):     at dalvik.system.NativeStart.main(Native Method)
04-11 14:19:41.711: W/System.err(3084): Caused by: java.net.UnknownHostException: Unable to resolve host "datamarket.accesscontrol.windows.net": No address associated with hostname
04-11 14:19:41.711: W/System.err(3084):     at java.net.InetAddress.lookupHostByName(InetAddress.java:400)
04-11 14:19:41.711: W/System.err(3084):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
04-11 14:19:41.711: W/System.err(3084):     at java.net.InetAddress.getAllByName(InetAddress.java:220)
04-11 14:19:41.711: W/System.err(3084):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:71)
04-11 14:19:41.711: W/System.err(3084):     at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
04-11 14:19:41.711: W/System.err(3084):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
04-11 14:19:41.711: W/System.err(3084):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
04-11 14:19:41.721: W/System.err(3084):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
04-11 14:19:41.721: W/System.err(3084):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
04-11 14:19:41.721: W/System.err(3084):     at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:460)
04-11 14:19:41.721: W/System.err(3084):     at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:441)
04-11 14:19:41.721: W/System.err(3084):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
04-11 14:19:41.721: W/System.err(3084):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
04-11 14:19:41.721: W/System.err(3084):     at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
04-11 14:19:41.721: W/System.err(3084):     at libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:188)
04-11 14:19:41.721: W/System.err(3084):     at libcore.net.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:280)
04-11 14:19:41.721: W/System.err(3084):     at com.memetix.mst.MicrosoftTranslatorAPI.getToken(MicrosoftTranslatorAPI.java:133)
04-11 14:19:41.721: W/System.err(3084):     at com.memetix.mst.MicrosoftTranslatorAPI.retrieveResponse(MicrosoftTranslatorAPI.java:160)
04-11 14:19:41.721: W/System.err(3084):     at com.memetix.mst.MicrosoftTranslatorAPI.retrieveString(MicrosoftTranslatorAPI.java:199)
04-11 14:19:41.721: W/System.err(3084):     ... 13 more
Était-ce utile?

La solution

J'ai aussi eu ce même problème en utilisant cette API, cela a fonctionné après avoir changé la ligne

translatedText = Translate.execute(word, Language.ENGLISH, Language.GERMAN);à

translatedText = Translate.execute(word, Language.GERMAN);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top