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

Android使用Retrofit能否获取预览PDF响应?Postman正常但返回500问题求助

问题原因
  • 最主要的问题是请求头配置错误:你在GET请求的接口上错误设置了Content-Type: application/pdf请求头。Content-Type的作用是标识请求携带的请求体的媒体类型,而GET请求本身不存在请求体,服务端接收到不符合规则的请求头后会抛出解析异常,直接返回500状态码。
  • Postman发起请求时会自动补全合理的请求头参数,所以相同参数的请求可以正常得到200响应。你实际需要的是声明客户端可接收的响应媒体类型,应该使用Accept请求头而非Content-Type。
修复方案
  1. 首先修改ApiInterface中的请求头配置,将错误的Content-Type替换为Accept头:
@Streaming
@GET("SaleReport")
@Headers({"Accept: application/pdf"})
Call<ResponseBody> getReport(@Header("Authorization") String token, @Query("SaleId") String saleId);
  1. 若修改后仍返回500,可以给Retrofit关联的OkHttp客户端添加日志拦截器,打印完整的请求报文,和Postman的请求报文逐行对比,排查以下常见问题:
  • Authorization头的token值是否正确,有没有多余空格、大小写错误
  • 传参的SaleId是否和Postman中的值完全一致,有没有被自动编码或添加多余字符
  • 服务端如果有UA、Referer等额外请求头校验,参照Postman的配置补充对应请求头即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:36:10