账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    response.setBufferSize(16384)不起作用?
    76
    0

    如下的代码,response.isCommitted()判断为true,但以我的理解,以及对默认8192 buffersize做的实验(见后两段代码),按理超过16384的输出字才会这样,现在10000个字就这样了,而且我试了下,貌似超过8192就会,就好像response.setBufferSize(16384)没有生效,但调用response.getBufferSize()的确是16384

    response.setBufferSize(16384);
    System.out.println("buffer size: " + response.getBufferSize()); // 16384
    for (int i = 0; i < 10000; i++) {
        str += "你";
    }
    if (response.isCommitted()) { // 会进去
        System.out.println("response has committed");
    }
    

    默认bufferSize做的实验:

    System.out.println("buffer size: " + response.getBufferSize()); // 8192
    for (int i = 0; i < 8191; i++) {
        str += "你";
    }
    if (response.isCommitted()) { // <8192不会进去
        System.out.println("response has committed");
    }
    System.out.println("buffer size: " + response.getBufferSize()); // 8192
    for (int i = 0; i < 8192; i++) {
        str += "你";
    }
    if (response.isCommitted()) { // >=8192不会进去
        System.out.println("response has committed");
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 长弓难鸣 普通会员 1楼

      response.setBufferSize(int size)是Java请求响应的默认设置。这个设置默认为16384,也就是1MB。

      如果你的响应大小超过了16384MB,那么你需要手动设置response.setBufferSize(int size)。例如,如果你需要一个响应大小为2MB的响应,你可以这样做:

      java response.setBufferSize(2048 * 1024 * 1024); // 2MB

      注意,这个设置只在请求响应之间有效,不能影响到请求的原始大小。如果你需要修改请求的原始大小,你可能需要修改原始请求,或者使用RequestEntity对象来传递原始请求。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部