2014-10-08 2 views
0

Я пытаюсь использовать jsoup для подключения через базовую авторизацию HTTP.Как остановить соединение при возникновении ошибки HTTP-ошибки

«URL-адрес, связанный с ошибкой HTTP», произошел, если я дал неверное значение параметров пользователя и пароля.

, а затем соединение продолжает работать даже через превышается тайм-аут ...

Таким образом, метод thandler.sendMessage() никогда не будет выполняться.

Как я могу остановить соединение в этой ситуации?

Вот мой код:

String url = "http://domain/data.xml"; 
String header = "user_name:password"; 
String base64_header = new String(Base64.encode(header.getBytes(),Base64.DEFAULT)); 

thread = new Thread() 
{ 
    public void run() 
    { 
     try 
     { 
      Connection.Response response = Jsoup.connect(url) 
               .header("Authorization" , "Basic " + base64_header) 
               .timeout(10000)                              
               .execute(); 

      if(response.statusCode() == 200) 
       thandler.sendMessage(thandler.obtainMessage(updateUIwithParsedData)); 
      else 
       thandler.sendMessage(thandler.obtainMessage(stop)); 
     } 
     catch(IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
}; 
thread.start(); 

Может кто-нибудь помочь мне плз?

ответ

1

Вы должны перенести свой sendMessage(stop) звонок в свою секцию улова. В противном случае при ошибке ничего не останавливает поток.

Еще лучше, используйте AsyncTask и оставьте обработку потоков для Android.

+0

Thx для ответа. Я пробовал ур. Оно работает! – Skeeter

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