如何通过Postman从CompaniesHouse API下载文档?认证报错求助
解决Companies House文档API的认证冲突错误
看起来你遇到的是认证机制冲突的问题——这个错误提示来自底层的AWS S3服务(Companies House的文档存储在S3上),意思是你的请求同时传递了多种认证参数,违反了S3只允许单一认证方式的规则。
下面是一步步的排查和解决方法:
1. 彻底清理请求中的所有冗余认证内容
先在Postman里做一轮“大扫除”,避免多种认证方式冲突:
- 切换到Params标签,检查是否有
X-Amz-Algorithm、Signature、X-Amz-Credential这类AWS签名相关的查询参数,全部删除; - 切换到Headers标签,检查是否有重复的
Authorization头,或者同时存在Authorization和AWS相关头(比如X-Amz-Signature),只保留后续要配置的正确头,其余全部删除; - 切换到Authorization标签,确保只选择一种认证类型,不要同时勾选多个(比如既选了Basic Auth又选了AWS Signature)。
2. 配置正确的Companies House认证方式
Companies House的文档API需要用你的平台API密钥通过Basic Auth传递:
- 在Postman的Authorization标签,选择Basic Auth类型;
- 在Username字段填入你的Companies House API密钥,Password字段留空(他们的API只要求密钥作为用户名,密码无要求);
- Postman会自动生成对应的
Authorization: Basic <base64编码的API密钥>请求头,这是官方要求的正确认证方式。
3. 验证请求的基础格式
确保你的请求URL正确替换了{id}为真实有效的文档ID,比如:
http://document-api.companieshouse.gov.uk/document/12345678/content
同时请求方法选择GET(文档内容获取接口默认用GET请求)。
4. 重新测试请求
完成以上配置后重新发送请求,应该就能避开认证冲突的错误了。如果还是失败,可以检查你的API密钥是否在有效期内,以及目标文档ID是否确实存在且你有权限访问。
补充:这个错误很容易在Postman中不小心触发——比如你之前测试过AWS相关API残留了参数,或者手动加了认证头又同时用了Postman的自动认证生成功能,所以清理冗余认证信息是解决问题的核心。
内容的提问来源于stack exchange,提问作者Sam K
相关产品推荐
相关产品推荐

