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

如何使用CapacitorHttp下载PDF并设置responseType为blob

CapacitorHttp 如何配置类似responseType: 'blob'的选项?

可以直接在CapacitorHttp的请求配置里添加responseType: 'blob'来获取二进制Blob数据,不过你的代码里有几个需要修正的地方:

1. 移除无用的请求头

你当前请求头里的access-control-allow-origin、access-control-allow-methods、access-control-allow-headers都是服务器响应头,客户端发起请求时不需要携带这些字段,删掉它们即可。

2. 添加responseType配置

在请求options里直接加上responseType: 'blob',CapacitorHttp会自动把响应体解析为Blob类型。

3. 正确获取Blob数据

CapacitorHttp的HttpResponse对象里,实际的响应数据存在data字段中,不是整个response对象,所以你需要把response.data传给write_blob的blob参数。

修正后的完整代码:

async downloadPDF(FullName: any, URL: any) {
    const options = {
      url: URL,
      headers: {
        'x-authorization-token': 'XXXXXXXXX',
      },
      responseType: 'blob', // 添加responseType配置
      params: {},
    };

    const response: HttpResponse = await CapacitorHttp.get(options);

    // 传入response.data作为Blob参数
    await write_blob({
      directory: Directory.Documents,
      path: `${FILE_DIR}/${FullName}`,
      blob: response.data as Blob,
    });
}

补充说明

设置responseType: 'blob'后,CapacitorHttp会自动处理二进制响应体,response.data就会是符合Blob类型要求的对象,能解决你之前遇到的类型错误问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:10:26