2014-05-14 31 views
-3

我得到了下一個excepcition,但我不知道爲什麼。我tryiing得到一個JSON階躍響應從Django的服務器對象(Django的服務器工作percetly),但我得到了一個錯誤:致命異常:Android的JSON響應中的AsyncTask#3

05-13 19:57:29.069: E/AndroidRuntime(8845): FATAL EXCEPTION: AsyncTask #3 
    05-13 19:57:29.069: E/AndroidRuntime(8845): Process: com.example.webservicestemperatura, PID: 8845 
    05-13 19:57:29.069: E/AndroidRuntime(8845): java.lang.RuntimeException: An error occured while executing doInBackground() 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at android.os.AsyncTask$3.done(AsyncTask.java:300) 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at java.lang.Thread.run(Thread.java:841) 
    05-13 19:57:29.069: E/AndroidRuntime(8845): Caused by: java.lang.IllegalArgumentException: Illegal character in scheme at index 0: 192.168.1.68:8000/c_f/4.0 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at java.net.URI.create(URI.java:727) 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:75) 
    05-13 19:57:29.069: E/AndroidRuntime(8845):  at com.example.webservicestemperatura.MainActivity$sampleService.doInBackground(MainActivity 

我的代碼是下一個:

class sampleService extends AsyncTask<Boolean, Boolean, Boolean> { 

     @Override 
     protected Boolean doInBackground(Boolean... params) { 
      HttpClient httpClient = new DefaultHttpClient(); 
      HttpGet del = new HttpGet("192.168.1.68:8000/c_f/4.0"); 
      del.setHeader("content-type", "application/json"); 
      try { 
       HttpResponse resp = httpClient.execute(del); 
       String respStr = EntityUtils.toString(resp.getEntity()); 
       JSONObject respJSON = new JSONObject(respStr); 
       String far = respJSON.getString ("far"); //Check your type data to return in your web service. 


       System.out.println("HOLAAAAAAAAAAAAAAAAAAAAAA" + far); 
       Log.d("Service", far); 
      } catch(Exception ex) { 
       Log.e("Service","Error!", ex); 
      } 
      return null; 
     } 

如果我得到http://它說「連接被拒絕」:當我在Web瀏覽器中使用它時,它完美地工作而且我得到了JSON響應。但後來我得到了下一個錯誤:

05-13 20:10:56.935: E/Service(12445): Error! 
05-13 20:10:56.935: E/Service(12445): org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.1.68:8000 refused 
05-13 20:10:56.935: E/Service(12445): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183) 
05-13 20:10:56.935: E/Service(12445): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
05-13 20:10:56.935: E/Service(12445): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
05-13 20:10:56.935: E/Service(12445): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
05-13 20:10:56.935: E/Service(12445): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
05-13 20:10:56.935: E/Service(12445): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
05-13 20:10:56.935: E/Service(12445): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
05-13 20:10:56.935: E/Service(12445): at com.example.webservicestemperatura.MainActivity$sampleService.doInBackground(MainActivity.java:53) 
05-13 20:10:56.935: E/Service(12445): at com.example.webservicestemperatura.MainActivity$sampleService.doInBackground(MainActivity.java:1) 
05-13 20:10:56.935: E/Service(12445): at android.os.AsyncTask$2.call(AsyncTask.java:288) 
05-13 20:10:56.935: E/Service(12445): at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
05-13 20:10:56.935: E/Service(12445): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
05-13 20:10:56.935: E/Service(12445): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
05-13 20:10:56.935: E/Service(12445): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
05-13 20:10:56.935: E/Service(12445): at java.lang.Thread.run(Thread.java:841) 
05-13 20:10:56.935: E/Service(12445): Caused by: java.net.ConnectException: socket failed: EACCES (Permission denied) 
05-13 20:10:56.935: E/Service(12445): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:181) 

回答

0

您的URI無效,因爲它缺少協議。如果您在前面附加http://,它應該可以正常工作

爲了響應您的更新,您應該學會正確地閱讀LogCat。

Caused by:的行是尋找的行,因爲他們通常會告訴你問題的根源。在這種情況下,the exception you posted的快速谷歌帶來了許多堆棧溢出的答案,可以解決你的問題。

+0

如果我使用以http://它說:連接被拒絕:在瀏覽器中它完美的作品和我得到的JSON回答, –

+0

異常的其餘部分是什麼?連接可能被拒絕的原因有很多。更新OP – panini

+0

我已經更新並且您可以看到錯誤。請幫幫我 –

0

您的網址是壞的形成,需要defin「HTTTP://」

http://192.168.1.68:8000/c_f/4.0