使用Retrofit 2向AWS服务器上传音图时返回403错误
排查Retrofit 2上传图片/音频返回403的问题
Hey,我来帮你一步步排查这个403权限错误的问题,毕竟Retrofit上传文件碰到这类问题还是挺常见的,咱们从几个关键方向入手:
先揪出最明显的拼写错误!
你接口里的@Header("Authoriozation")明显拼错了!正确的认证头应该是Authorization(注意中间是iz不是io)。这个拼写错误会导致服务器完全识别不到你的认证Token,直接返回403。这大概率是首要问题,先改这个试试!验证Token的有效性与格式
- 先确认你的Token是有效的,没有过期,并且拥有访问该上传接口的权限。可以先用Postman直接带着这个Token调用接口,看能不能正常返回,排除Token本身的问题。
- 检查Token的格式是否符合服务器要求,很多接口都需要加上
Bearer前缀(比如Bearer your_token_string),如果漏了这个前缀,服务器也会判定认证失败。
修正URL里的冗余斜杠
你接口的POST地址是http://ec2-18-216-193-78.us-east-2.compute.amazonaws.com:3000//api/v1/snapNShare,这里3000端口后面有两个连续的斜杠//。虽然部分服务器会自动处理,但也有可能导致路由匹配异常或者权限校验逻辑出错,建议改成单斜杠/api/v1/snapNShare再测试。确认Multipart参数的正确性
- 检查
MultipartBody.Part的创建是否规范,比如图片和音频的表单字段名、MIME类型是否和后端接口要求的完全一致。举个图片Part的正确创建示例:
要确保RequestBody imageRequestBody = RequestBody.create(MediaType.parse("image/jpeg"), imageFile); MultipartBody.Part dishPicture = MultipartBody.Part.createFormData("dishPicture", imageFile.getName(), imageRequestBody);createFormData的第一个参数(表单字段名)和后端期望的完全匹配,大小写、拼写都不能错。 - 验证其他表单参数(
restaurantInfoId、textReview、rating)的传递是否正确,比如rating是否确实是Integer类型,有没有误传成字符串导致后端解析异常(虽然这种情况更多返回400,但也不排除触发权限拦截的可能)。
- 检查
检查Dagger注入的ApiClient配置
- 确认Dagger提供的ApiClient实例是否正确初始化了Retrofit,建议添加日志拦截器来打印完整的请求详情,这样能直观看到Token是否正确发送、参数是否完整。示例代码:
之后在Logcat里就能看到完整的请求头、参数信息,方便排查问题。HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(loggingInterceptor) .build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .build(); - 确认Dagger的
@Singleton注解是否正确配置,有没有出现多个ApiClient实例导致配置不一致的情况。
- 确认Dagger提供的ApiClient实例是否正确初始化了Retrofit,建议添加日志拦截器来打印完整的请求详情,这样能直观看到Token是否正确发送、参数是否完整。示例代码:
服务器端配置排查
如果上面的点都排查过没问题,那就要看服务器端的情况了:- 确认AWS服务器的安全组是否允许你的应用所在IP访问3000端口。
- 检查后端接口的权限校验逻辑,比如是否对该上传接口设置了特定权限,而你的Token没有对应的权限。
- 查看服务器的日志,获取403错误的具体原因(比如Token无效、权限不足、请求参数不合法等),这会给你最直接的排查方向。
内容的提问来源于stack exchange,提问作者buttercup
相关产品推荐
相关产品推荐

