2013-09-11 2 views
0

здесь размещения данных в URL-адрес и получить ответ от it.but теперь получает noHttpResponse исключения здесь размещая кодисключения: noHttpResponse в Android

TextView xx = (TextView) findViewById(R.id.xx); 
    HttpClient client = new DefaultHttpClient(); 
    HttpPost post = new HttpPost(
      "http://motinfo.direct.gov.uk/internet/jsp/ECHID-Internet-History-Request.jsp"); 
    try { 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3); 
     nameValuePairs 
       .add(new BasicNameValuePair(
         "Vehicle registration mark from number plate", 
         "123456789")); 
     nameValuePairs.add(new BasicNameValuePair("MOT test number", 
       "AP3398")); 
     nameValuePairs.add(new BasicNameValuePair("MOT test number", 
       "000000")); 

     post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     HttpResponse response = client.execute(post); 

     String line = ""; 
     if (response != null) { 
      System.out 
        .println("***********************************************************"); 
      xx.setText(EntityUtils.toString(response.getEntity())); 

     } 

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

Здесь ДОБАВЛЕНИЕ LogCat

09-11 12:40:22.086: I/InputDispatcher(61): Application is not responding: AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}}. 640698.7ms since event, 640698.2ms since wait started 
09-11 12:40:22.086: I/WindowManager(61): Input event dispatching timed out sending to application AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}} 
09-11 12:40:27.117: I/InputDispatcher(61): Application is not responding: AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}}. 645729.5ms since event, 645728.9ms since wait started 
09-11 12:40:27.117: I/WindowManager(61): Input event dispatching timed out sending to application AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}} 
09-11 12:40:32.165: I/InputDispatcher(61): Application is not responding: AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}}. 650777.7ms since event, 650777.1ms since wait started 
09-11 12:40:32.165: I/WindowManager(61): Input event dispatching timed out sending to application AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}} 
09-11 12:40:37.182: I/InputDispatcher(61): Application is not responding: AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}}. 655793.8ms since event, 655793.3ms since wait started 
09-11 12:40:37.183: I/WindowManager(61): Input event dispatching timed out sending to application AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}} 
09-11 12:40:42.202: I/InputDispatcher(61): Application is not responding: AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}}. 660814.3ms since event, 660813.7ms since wait started 
09-11 12:40:42.202: I/WindowManager(61): Input event dispatching timed out sending to application AppWindowToken{406a9208 token=HistoryRecord{4064bf48 com.example.xxx/.MainActivity}} 
+0

Опубликовать логин здесь –

+0

обновленный вопрос –

+1

Вы столкнулись с статусом ANR, и из-за этого может быть исключение, все это может быть связано с медленным подключением к Интернету или из-за тяжелых данных JSON, которые вы получаете от ответа. –

ответ

0

Вы должны извлечь этот кусок кода, который выполняет HTTP-запрос в методе и выполняет его в отдельном потоке, например, используя AsyncTask или IntentService.

Начиная с Android 3.0 и выше вам больше не разрешается выполнять сетевые операции из потока пользовательского интерфейса, в противном случае выдается NetworkOnMainThreadException.

Для Android 2.x вы не получите это исключение, но операция http может занять слишком много времени, чтобы выполнить и заблокировать поток пользовательского интерфейса в результате, что может привести к ошибке ANR (приложение не отвечает), что кажется быть вашим делом.

+0

Я нацеливаюсь на 2.3.3 –

+0

Затем вы получите сообщение об ошибке, не отвечающей. Чтобы исправить это, вы должны сделать HTTP-запрос из потока. –

0

По вашему журналу я вижу, что поток пользовательского интерфейса блокируется, потому что вы отправляете запрос POST, который блокирует приложение, ожидающее ответа.

Используйте AsyncTask для всех запросов HTTP.

Смежные вопросы