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

ROBOT框架存储JSON数据发API请求报415错误如何解决

Robot Framework API请求返回415错误解决方案

错误原因

触发415 Unsupported Media Type错误的核心原因是:post on session关键字的data参数接收字典时,会自动将其序列化为application/x-www-form-urlencoded格式的表单数据,即便你手动指定了Content-Type: application/json请求头,实际请求体的格式依然不符合后端接收JSON的要求,所以被后端拒绝。

解决方案

方案1(优先推荐,适配新版RequestsLibrary)

新版RequestsLibrary的post on session关键字支持json参数,直接传字典即可自动序列化为JSON格式,同时自动添加正确的Content-Type请求头,无需手动定义header。

修改后完整代码如下:

*** Settings *** 
Library Collections 
Library RequestsLibrary 

*** Variables *** 
${prod_url}    http://localhost:3000/api

*** Test Cases *** 
User login and token generation
    Create Session    demo    ${prod_url} 
    ${body}=    Create Dictionary    username=test@test.com    password=123456789 
    # 直接使用json参数传字典,库会自动处理序列化和请求头
    ${login}=    Post On Session    demo    /login    json=${body}
    # 调试信息打印
    Log To Console    响应状态码:${login.status_code}
    Log To Console    响应内容:${login.content}
    # 提取token,根据实际返回的JSON字段调整键名即可
    ${resp_json}=    Set Variable    ${login.json()}
    ${token}=    Set Variable    ${resp_json}[access_token]
    Log To Console    登录获取的Token:${token}

方案2(适配旧版RequestsLibrary)

如果使用的RequestsLibrary版本不支持json参数,可以先将字典转为JSON字符串再通过data参数传递:

*** Settings *** 
Library Collections 
Library RequestsLibrary 
Library JSONLibrary

*** Variables *** 
${prod_url}    http://localhost:3000/api

*** Test Cases *** 
User login and token generation
    Create Session    demo    ${prod_url} 
    ${body}=    Create Dictionary    username=test@test.com    password=123456789 
    # 字典转JSON字符串
    ${body_json}=    Dump Json    ${body}
    ${header}=    Create Dictionary    Content-Type=application/json
    ${login}=    Post On Session    demo    /login    data=${body_json}    headers=${header}
    # 后续token提取逻辑和方案1一致

注意事项

  • 原代码变量区的Credentials是无效定义,直接删除即可,否则会触发变量解析错误
  • ${prod_url}建议加上http/https协议头,避免部分版本的RequestsLibrary识别出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:24:02