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

如何使用Python Swagger客户端发送含二进制内容的POST请求

解决Swagger生成的Python客户端构造multipart/form-data请求体问题
  • 第一步:读取XML文件为二进制数据
    接口要求d1是binary类型,必须以二进制模式读取文件,避免编码问题:

    with open("path/to/your.xml", "rb") as xml_file:
        d1_binary = xml_file.read()
    
  • 第二步:构造请求体(两种方式二选一)
    方式1:使用Swagger客户端生成的请求体模型
    如果客户端根据OpenAPI定义生成了对应的请求体模型(比如命名类似XyzRequest或MultipartXyzBody),直接实例化模型并传入参数:

    from your_swagger_client.models import XyzRequest
    
    request_body = XyzRequest(
        d1=d1_binary,
        d2="valid@email.com"
    )
    
    # 调用接口
    api_response = my_api.xyz(body=request_body)
    

    方式2:直接构造字典(适用于未生成模型的情况)
    如果客户端没有生成专用模型,直接构造包含两个字段的字典,确保d1是二进制数据,d2是符合格式的邮箱字符串:

    request_body = {
        "d1": d1_binary,
        "d2": "valid@email.com"
    }
    
    # 调用接口
    api_response = my_api.xyz(body=request_body)
    
  • 注意事项

    • 确认d1的字段名和OpenAPI定义完全一致,大小写敏感
    • d2必须是非空的合法邮箱格式,否则接口会返回参数校验错误
    • 如果调用时报错,检查客户端是否自动处理了multipart/form-data的Content-Type,部分Swagger生成的客户端会根据请求体类型自动设置头

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:22:09