2016-05-23 86 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连接池。