2016-05-23 32 views
1

`ve geöffnet HttpURLConnection Verbindung, öffnete sie und schrieb über sie wieder öffnen:Wie kann ich HttpURLConnection

HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); 
httpCon.setDoOutput(true); 
httpCon.setRequestMethod("PUT"); 
httpCon.addRequestProperty("X-Auth-Token", getAuthToken()); 
httpCon.addRequestProperty("Content-Type", contentType); 

httpCon.setDoInput(true); 
httpCon.setRequestProperty("Connection", "close"); 
httpCon.setReadTimeout(READ_TIMEOUT); 
httpCon.setRequestProperty("Transfer-Encoding","chunked"); 
httpCon.setDoOutput(true); 
httpCon.setChunkedStreamingMode(STREAMING_CHUNK); 
OutputStream out = httpCon.getOutputStream(); 

Nach einiger Zeit das Authentifizierungstoken abgelaufen war und der Ausgangsstrom war geschlossen. So bei dem Versuch, `ve begegnet IOException zu schreiben, um zu lösen, dass ich versuchte es noch einmal neu zu authentifizieren und schreiben:

private void ReAuthenticate() 
{ 
    mHttpCon.addRequestProperty("X-Auth-Token", getNewToken()); 
    mOutputStream = mHttpCon.getOutputStream(); 
} 
    public void write(byte[] b) throws IOException { 
     try{ 
     mOutputStream.write(b); 
     } 
     catch (IOException ex) 
     { 
      ReAuthenticate(); 
     } 
    } 

Aber nichts geschrieben wurde? Was könnte falsch sein? Werden alle Eigenschaften von httCon gespeichert? zum Beispiel httpCon.setDoOutput(true);?

Antwort

0

Sie können nicht. Sie müssen einen neuen für denselben URL erstellen.

Allerdings gibt es TCP-Verbindung Pooling hinter den Kulissen.

Verwandte Themen