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

如何在Robot Framework中调用PUT方法REST API 排查400状态码报错

问题原因排查及解决方案

核心错误原因

你在UpdateLanguageStatus用例中调用PUT接口时,错误使用了data参数传递字典类型的请求体:
RequestsLibrary的请求关键字中,data参数默认会将字典内容转为x-www-form-urlencoded格式的字符串发送,即使你请求头设置了Content-Type=application/json,实际传输的请求体格式也和声明的不匹配,因此服务端返回400错误。
Postman中请求正常是因为你在Postman里选择了json格式的请求体,Postman会自动将填写的JSON对象转为字符串发送,和Robot Framework的传输逻辑不一致。

修复方案

两种方案二选一即可:

  • 方案1:直接将data=${body}替换为json=${body},RequestsLibrary的json参数会自动将字典转为JSON字符串发送,且自动匹配Content-Type头
    修改后的请求行如下:
${response}=    PUT    ${Profile}/me/settings    json=${body}    headers=${header}
  • 方案2:手动将字典转为JSON字符串后再通过data参数传递,需要用到JSONLibrary的Dumps关键字:
UpdateLanguageStatus
    ${body}=    Create Dictionary    languageId=20
    ${json_body}=    Dumps    ${body}
    ${header}=    create dictionary    Content-Type=application/json    Authorization=${token}
    ${response}=    PUT    ${Profile}/me/settings    data=${json_body}    headers=${header}
    Log To Console    ${response.status_code}
    Log To Console    ${response.content}

额外排查建议

如果修改后仍然报错,可以打印响应内容${response.content}查看服务端返回的具体错误描述,进一步定位参数问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:36:03