Robot Framework用REST库发GET请求下载文件报KeyError: 'content-type'
Robot Framework REST库下载文件报KeyError: 'content-type'解决方案
问题根因
该报错是因为Robot Framework REST库(通常指RESTinstance)默认会读取响应头的Content-Type字段,用于自动解析响应体格式。文件下载接口返回二进制流时,要么接口未返回标准Content-Type头,要么库的默认解析逻辑不兼容二进制响应场景,就会触发该键值不存在报错。
需要补充的设置项
- 补充
Accept请求头,适配二进制流返回规则
多数文件下载接口要求请求端声明可接受的返回类型,你可以根据实际下载的文件类型填写,或者先使用通用匹配:Set headers { "Auth": "${code}", "Accept": "*/*" } - 关闭REST库的自动响应解析配置
调用GET请求前添加配置,跳过依赖Content-Type的解析逻辑,专门适配二进制流场景:Set REST Configuration response_parser none - 可选配置:如果需要本地保存下载的文件,拿到响应后新增导出逻辑:
${file_content} Get Response Body binary Create Binary File ./download/file_${id}.xxx ${file_content}
修正后的完整测试代码
download file [Arguments] ${id} # 跳过响应自动解析,避免校验Content-Type Set REST Configuration response_parser none # 补充Accept头适配二进制返回 Set headers { "Auth": "${code}", "Accept": "*/*" } GET /api/file/download/${id} Integer response status 200 # 可选:将二进制内容保存到本地 ${file_content} Get Response Body binary Create Binary File ./download/test_file_${id}.dat ${file_content}
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

