2014-02-10 35 views
0

我得到的UnknownHostException每一次,這是我的部分代碼:線路上無3的UnknownHostException在client.execute(httppost)

DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpPost httpPost = new HttpPost(url); 

HttpResponse httpResponse = httpClient.execute(httpPost); 
HttpEntity httpEntity = httpResponse.getEntity(); 
is = httpEntity.getContent(); 

我有例外,

我不得不重新啓動我的WiFi連接。 我也使用過我的數據計劃。 我還與HTTPGET類,而不是HttpPost 的URL嘗試是工作完全在瀏覽器上

我無法理解,什麼是真正的原因,請幫助我...

這是logcat的O/P : -

02-10 22:41:33.307: W/System.err(16016): java.net.UnknownHostException: Unable to resolve host "www.offerpunch.com": No address associated with hostname 
02-10 22:41:33.317: W/System.err(16016): at java.net.InetAddress.lookupHostByName(InetAddress.java:424) 
02-10 22:41:33.317: W/System.err(16016): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 
02-10 22:41:33.317: W/System.err(16016): at java.net.InetAddress.getAllByName(InetAddress.java:214) 
02-10 22:41:33.317: W/System.err(16016): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:141) 
02-10 22:41:33.317: W/System.err(16016): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
02-10 22:41:33.317: W/System.err(16016): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
02-10 22:41:33.317: W/System.err(16016): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
02-10 22:41:33.317: W/System.err(16016): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
02-10 22:41:33.317: W/System.err(16016): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
02-10 22:41:33.317: W/System.err(16016): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
02-10 22:41:33.317: W/System.err(16016): at com.android.offerpunch.util.JSONParserForArray.getJSONFromUrl(JSONParserForArray.java:38) 
02-10 22:41:33.317: W/System.err(16016): at com.android.offerpunch.SearchResultActivity$OffersList.doInBackground(SearchResultActivity.java:103) 
02-10 22:41:33.317: W/System.err(16016): at com.android.offerpunch.SearchResultActivity$OffersList.doInBackground(SearchResultActivity.java:1) 
02-10 22:41:33.317: W/System.err(16016): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
02-10 22:41:33.317: W/System.err(16016): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
02-10 22:41:33.317: W/System.err(16016): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
02-10 22:41:33.317: W/System.err(16016): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
02-10 22:41:33.317: W/System.err(16016): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
02-10 22:41:33.317: W/System.err(16016): at java.lang.Thread.run(Thread.java:856) 
02-10 22:41:33.327: W/System.err(16016): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname) 
02-10 22:41:33.327: W/System.err(16016): at libcore.io.Posix.getaddrinfo(Native Method) 
02-10 22:41:33.327: W/System.err(16016): at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:59) 
02-10 22:41:33.327: W/System.err(16016): at java.net.InetAddress.lookupHostByName(InetAddress.java:405) 
02-10 22:41:33.327: W/System.err(16016): ... 18 more 
02-10 22:41:33.327: E/Buffer Error(16016): Error converting result java.lang.NullPointerException: lock == null 
02-10 22:41:33.327: E/JSON Parser(16016): Error parsing data org.json.JSONException: End of input at character 0 of 
02-10 22:41:33.337: W/dalvikvm(16016): threadid=12: thread exiting with uncaught exception (group=0x41458ae0) 
02-10 22:41:33.337: E/AndroidRuntime(16016): FATAL EXCEPTION: AsyncTask #2 
02-10 22:41:33.337: E/AndroidRuntime(16016): java.lang.RuntimeException: An error occured while executing doInBackground() 
02-10 22:41:33.337: E/AndroidRuntime(16016): at android.os.AsyncTask$3.done(AsyncTask.java:299) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at java.util.concurrent.FutureTask.run(FutureTask.java:239) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at java.lang.Thread.run(Thread.java:856) 
02-10 22:41:33.337: E/AndroidRuntime(16016): Caused by: java.lang.NullPointerException 
02-10 22:41:33.337: E/AndroidRuntime(16016): at com.android.offerpunch.SearchResultActivity$OffersList.doInBackground(SearchResultActivity.java:104) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at com.android.offerpunch.SearchResultActivity$OffersList.doInBackground(SearchResultActivity.java:1) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
02-10 22:41:33.337: E/AndroidRuntime(16016): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
02-10 22:41:33.337: E/AndroidRuntime(16016): ... 4 more 
+0

後堆棧跟蹤 – Triode

+0

也發表您的網址 – Giacomoni

+0

我已經加入我的logcat的O/P和URL字符串 – Rohit

回答

1

確保你傳遞給HttpPost的URL字符串開頭http://

編輯:我能夠執行與下面的代碼樣本的請求(注意http前綴)

private void httpStuff() { 
    new AsyncTask<Void, Void, String>() { 
     @Override 
     protected String doInBackground(Void... params) { 
      BufferedReader reader = null; 
      try { 
       String url = "http://www.offerpunch.com/parser/index.php/deals?SR=1&cat_id=&SRcat_id=&SRkeyword=hddhh&deal_city=&deal_area="; 
       DefaultHttpClient httpClient = new DefaultHttpClient(); 
       HttpPost httpPost = new HttpPost(url); 

       HttpResponse httpResponse = httpClient.execute(httpPost); 
       HttpEntity httpEntity = httpResponse.getEntity(); 
       InputStream is = httpEntity.getContent(); 
       reader = new BufferedReader(new InputStreamReader(is)); 

       StringBuilder total = new StringBuilder(); 
       String line; 
       while ((line = reader.readLine()) != null) { 
        total.append(line); 
       } 
       return total.toString(); 

      } catch (ClientProtocolException ex) { 
       Log.e("LOG_TAG", null, ex); 
      } catch (IOException ex) { 
       Log.e("LOG_TAG", null, ex); 
      } finally { 
       if (reader != null) { 
        try { 
         reader.close(); 
        } catch (IOException ex) { 
        } 
       } 
      } 
      return null; 
     } 

     protected void onPostExecute(String result) { 
      if (result == null) { 
       Log.d("LOG_TAG", "Result is null"); 
      } else { 
       Log.d("LOG_TAG", "Result size: " + result.length()); 
       Log.d("LOG_TAG", result); 
      } 

     }; 
    }.execute(); 
} 

結果是一個巨大的字符串(〜900K長度),我甚至不知道用戶實際可以理解的分析數據..但這是無關緊要的。

在你的情況,我相信你要麼把Internet允許在一個錯誤的地方作爲noted here,或者你在一個蹩腳的模擬器中運行的應用程序,或者你根本就沒有,你是在設備上的連接運行應用程序。

還有一件事:你得到的NullPointerException是因爲你認爲服務器端的結果是正確的。請確保您有分析之前沒有空支票...

+0

我的網址以http:// – Rohit

+0

開頭根據錯誤堆棧跟蹤 – gunar

+0

,url變量似乎沒有前綴我不知道爲什麼,我從調試器複製了網址,然後將其粘貼到我的問題中 – Rohit