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

通过API向Checkmarx SAST上传归档源码报错,请求排查协助

Checkmarx SAST 源码压缩包上传失败问题求助

尝试的两种上传方式

  • 官方文档指定的默认端点
    代码实现:

    import requests
    
    def upload_source(token: str, path_to_archive: str, host: str, project_id: int) -> None:
        headers = {
          'Content-Type': 'application/x-www-form-urlencoded',
          'Accept': 'application/json;v=1.0',
          'Authorization': 'Bearer {token}'
        }
    
        data = {'zippedSource': open(path_to_archive, 'rb').read()}
    
        response = requests.post(f'{host}/projects/{project_id}/sourceCode/attachments', 
        headers=headers, data=data)
    
  • 使用CheckmarxPythonSDK库
    代码实现:

    from CheckmarxPythonSDK.CxRestAPISDK import ProjectsAPI
    
    def upload_source(path_to_archive: str, project_id: int) -> None:
        cx_loader = ProjectsAPI()
        cx_loader.upload_source_code_zip_file(project_id, path_to_archive)
    

返回的错误信息

两种方式均返回相同错误:

{
  "messageCode": 27000,
  "messageDetails": "The requested file not found in Http-Message body"
}

已尝试的排查动作

  1. 改用SDK使用的请求参数替换文档示例,问题依旧:
    data = {"zippedSource": ("archive_name", open('path_to_arhive', 'rb'), "application/zip")}
    headers = {
        'Content-Type': 'multipart/form-data; boundary=1d8174c7f75344e0b5dcd64a9f874c1a',
        'cxOrigin': 'Checkmarx Python SDK 1.0.5',
        'Authorization': f'Bearer {token}'
    }
    
  2. 尝试多种压缩工具:7zip、python.shutil.make_archive()、Cx7zip,均未解决问题。

运行环境

脚本运行在WSL(Ubuntu)环境下。

目前无法定位问题根源,怀疑是请求头配置错误、文件处理方式不当或其他未知原因,希望得到协助排查。

内容的提问来源于stack exchange,提问作者pro-100-bro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:00:57