You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Axios下载图片遇maxContentLength超限错误,设置参数无效求助

解决Axios下载图片触发maxContentLength报错的问题

问题

使用Axios从网站下载图片时反复触发错误,已设置maxContentLength参数但问题仍未解决。

代码片段

const resp = await axios({
  method: 'GET',
  url: `${host}/data/${chapterHash}/${page}`,
  maxContentLength: 20000,
  responseType: 'arraybuffer'
})

报错信息

const err = new AxiosError(                                                                                                                              
^                                                                                                                                      
AxiosError: maxContentLength size of -1 exceeded                                                                                                                 
at IncomingMessage.handlerStreamAborted (C:\Users\alexou\Documents\node-reader\node_modules\axios\dist\node\axios.cjs:2912:23)                               
at IncomingMessage.emit (node:events:513:28)                                                                                                                 
at IncomingMessage._destroy (node:_http_incoming:224:10)                                                                                                     
at _destroy (node:internal/streams/destroy:102:25)                                                                                                           
at IncomingMessage.destroy (node:internal/streams/destroy:64:5)                                                                                              
at TLSSocket.socketCloseListener (node:_http_client:441:11)                                                                                                  
at TLSSocket.emit (node:events:525:35)                                                                                                                       
at node:net:757:14                                                                                                                                           
at TCP.done (node:_tls_wrap:584:7) {                                                                                                                       
code: 'ERR_BAD_RESPONSE'

解决方法

  1. 报错根源:服务器返回的响应中缺少Content-Length响应头,Axios无法识别预期的响应大小,此时单独设置maxContentLength无法解决问题。
  2. 参数调整:需要同时配置maxContentLength和maxBodyLength两个参数,若不需要限制响应大小,可直接设为Infinity:
const resp = await axios({
  method: 'GET',
  url: `${host}/data/${chapterHash}/${page}`,
  maxContentLength: Infinity,
  maxBodyLength: Infinity,
  responseType: 'arraybuffer'
})
  1. 额外排查点:
    • 验证目标图片URL是否能正常访问,返回的是否为有效图片数据。
    • 若网站存在反爬机制,可添加模拟浏览器的请求头:
      headers: {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
      }
      

内容的提问来源于stack exchange,提问作者alexou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:41:30