2016-11-18 12 views
-1

localhostサーバのURL「http://xx2/postdata/DATA2.asp?count=1&CIHAZID=53&ISLEMZAMANI=18102016190815&GZBHID=28198」を呼び出すためにAsychTask関数を使用しています。 Androidデバイスで正しく動作しているイーサネット接続でデバッグしているときに「OK」レスポンスを返す代わりにUnKnownHostExceptionを生成するjava.net.UnknownHostException:ホスト "<url here>"を解決できません。ホスト名に関連付けられたアドレスがありません

マニフェストのインターネットとネットワークのアクセス許可を追加するなど、ファイル "または" targetSdkVersionを22に変更する "など。

マニフェストファイルにインターネット権限が設定されています。

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

アンドロイドデバイスのブラウザでURLを呼び出すと、応答として「OK」が表示されますが、アプリケーションには表示されません。以下は、私はそれがホストXX2を解決ができないと言うのログでは

// AsyncTask Function to send TempReports Table records to server 
private class sendLogsToServer extends AsyncTask<String, Void, String> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 

    @Override 
    protected String doInBackground(String... params) { 

     URLConnection feedUrl; 
     StringBuilder sb = new StringBuilder(); 
     try { 
      feedUrl = new URL(params[0]).openConnection(); 
      InputStream is = feedUrl.getInputStream(); 

      BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); 
      String line = null; 

      while ((line = reader.readLine()) != null) { 
       sb.append(line + ""); 
      } 
      is.close(); 

      //createUserPageResult = sb.toString(); 
      return sb.toString(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     // if Response from server is OK, then delete the entry from DB TempReports Table 
     if (result != null) { 
      if (result.equals("OK") || result.equals("updated")) { 
       //Toast.makeText(MainActivity.this, "Deleted", Toast.LENGTH_SHORT).show(); 
       posDatabase.tempLogsDelete(logToDelete); 
      } 
     } else { 
      // don't delete 
      //Toast.makeText(MainActivity.this, "NOT Deleted", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

URLを呼び出すために使用していますAsyncTask機能です。以下は、より明確にするためのログです。

11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err: java.net.UnknownHostException: Unable to resolve host "xx2": No address associated with hostname 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at java.net.InetAddress.lookupHostByName(InetAddress.java:424) 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at java.net.InetAddress.getAllByName(InetAddress.java:214) 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70) 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50) 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340) 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87) 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316) 
11-18 15:30:32.280 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpEngine.connect(HttpEngine.java:311) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:282) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at com.emiturk.pos.MainActivity$sendLogsToServer.doInBackground(MainActivity.java:507) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at com.emiturk.pos.MainActivity$sendLogsToServer.doInBackground(MainActivity.java:493) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:287) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at java.lang.Thread.run(Thread.java:856) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err: Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at libcore.io.Posix.getaddrinfo(Native Method) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:59) 
11-18 15:30:32.290 13867-14241/com.emiturk.pos W/System.err:  at java.net.InetAddress.lookupHostByName(InetAddress.java:405) 
11-18 15:30:32.300 13867-14241/com.emiturk.pos W/System.err: ... 21 more 
+0

あなたのベースURLの問題は、ブラウザの天気がブラウザの天気かどうかを確認してください。天気が良いですか? – Vadivel

+0

あなたのコードはどこですか? – Vadivel

+0

あなたのデバイスが使用しているホスト名 "xx2"を認識していますか? 'adb shell'を使ってabd経由でデバイスに接続し、' ping xx2'と入力してこれを確認してください。その結果、xx2は知られていないことがわかります。 – andred

答えて

0

あなたは、あなたのlocalhostがxx2という名前の(おそらくデスクトップPCは、ホームネットワークインフラストラクチャ内のサーバとして動作する)URLがローカルホストから提供されていることを述べましたか?

あなたはIP経由でアクセスする必要があります。 http://192.168.1.1/....あなたのアンドロイドデバイスは、xx2という名前があなたのサーバーのIPに解決されていることに気付いていないためです。

関連する問題