2012-11-20 9 views
5
public class UrlVarificationTask extends AsyncTask<Void, Void, Integer> { 

    private String url; 
    private UrlVarificationDelegate delegate; 
    private HttpURLConnection huc; 

    public UrlVarificationTask(String url, UrlVarificationDelegate delegate) { 
     this.url = url; 
     this.delegate = delegate; 
    } 

    @Override 
    protected void onPreExecute() { 

     super.onPreExecute(); 
    } 

    @Override 
    protected Integer doInBackground(Void... params) { 
     int responseCode = 0; 
     try { 
      System.setProperty("http.keepAlive", "false"); 
      URL u = new URL(url); 
      huc = (HttpURLConnection) u.openConnection(); 
      huc.setRequestMethod("HEAD"); 
      huc.connect(); 
      responseCode = huc.getResponseCode(); 

     } catch (MalformedURLException mal) { 
      responseCode = -555; 
     } catch (IOException io) { 
      responseCode = -444; 
     } catch (Exception ex) { 
      responseCode = -333; 
      ex.printStackTrace(); 
     } 

     if (huc != null) { 
      try { 
       huc.getInputStream().close(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      huc.disconnect(); 
     } 

     Logger.debug("Response Code==" + responseCode); 
     return responseCode; 
    } 

    @Override 
    protected void onPostExecute(Integer responseCode) { 
     delegate.urlVarificationResponseCode(responseCode); 
     super.onPostExecute(responseCode); 
    } 

} 

ho usato sopra dode per la convalida URL,convalida URL funziona bene, ma mantenere la connessione e limitare eventuali ulteriori richieste

se la testa mi dia codice di risposta 200 poi solo io aprire un URL per WebView.

ma una volta che lo chiamo mantiene la connessione e non consente altre richieste HTTP anche dopo una chiusura, cosa fare?

Safe use of HttpURLConnection

risposta

4
huc.setRequestProperty("keep-alive", "false"); 

questo funziona come HttpURLConnection mantenere viva connessione e quindi cann't fanno compiere ulteriori richiesta in modo keep-alive impostazione per falso risolvere questo problema.

1

Per chiudere correttamente il HttpURLConnection andare al link

Con questo URL è chiusa.

Problemi correlati