2016-05-23 3 views
1

I`ve открыл HttpURLConnection соединение, открыл его и написал через него:Как я могу возобновить 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(); 

Через некоторое время маркер аутентификации истек и выходной поток был закрыт. Таким образом, при попытке записать I`ve встречается IOException Для того, чтобы решить, что я пытался писать и повторной аутентификации снова:

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(); 
     } 
    } 

Но ничего не было написано? Что может быть неправильным? Сохраняются ли все свойства httCon? например httpCon.setDoOutput(true);?

ответ

0

Вы не можете. Вы должны создать новый для того же URL.

Однако есть пул соединений TCP за кулисами.

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