httpurlconnection哪个流应该关闭?

时间:2015-04-30 08:15:09

标签: java http-post httpurlconnection

以下是我在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();
        }
    }
}

0 个答案:

没有答案