以下是我在httpsost客户端中使用java中的httpurlconnection。我在互联网上看到了一些示例代码,它们在flush()之后没有关闭输出流,但它们是为输入流做的。当我尝试普通场景时,它似乎在任何情况下都有效。(可能因为我每次都关闭http连接。)对于这个,最好的做法是什么,如果我关闭outputstream,inputstream或只是连接就足够了?如果我们决定使用keepalive怎么办?它是否会改变这个问题。
public CBBag executePost(byte[] input) throws CBException {
InputStream is = null;
DataOutputStream wr =null;
int STATE = 0;
try{
// Create connection
setCommonConnectionParameters(input.length);
// Send request
wr = new DataOutputStream(connection.getOutputStream());
wr.write(input);
wr.flush();
wr.close();//should I call ?
//Get response
STATE = 1;
is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is,encoding));
String line = rd.readLine() ;
while (line != null ) {
response.append(line);
line = rd.readLine();
}
rd.close();//should I call ?
return handleResponse(response);
}
catch (Exception e) {
closeQuietly(is,wr);
throw handleException(STATE, e);
}
finally {
if (connection != null) {
connection.disconnect();
}
}
}