我怎样才能重新HttpURLConnection的
问题描述:
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);
?
答
你不能。您必须为相同的URL
创建一个新的。
但是在幕后有TCP连接池。