【问题标题】:Robot Framework - Unsupported Media Type error机器人框架 - 不支持的媒体类型错误
【发布时间】:2021-12-21 15:07:01
【问题描述】:

我有以下 json 文件:

{
   "company":[
      {
         "name":"My company",
         "security":"WPA2-PSK"
      }
   ],
   "name":"one name"
}

我正在尝试发送基于此 json 文件的 POST,但出现错误。

我的代码如下所示:

Create new company
${headers} =  Create Dictionary   Accept=application/json    Content-Type=application/json
${body} =    Get file  create.json
Create Session    http_session   ${url}   disable_warnings=${True}
${response} = POST On Session   http_session  ${company}  data=${body} headers=${headers}

但我收到以下错误:

POST Response:
headers={'content-type': 'application/json', 'vary': 'Accept, Origin, Cookie', 'allow': 'GET, POST, HEAD, OPTIONS', 'x-frame-options': 'DENY', 'content-length': '52', 'x-content-type-options': 'nosniff', 'referrer-policy': 'same-origin', 'set-cookie': '64bc588b56c7114f53411b945693e29ba=55323dcbd60f99b6aa8cfcb0f44f578e; path=/; HttpOnly; Secure; SameSite=None'} 
 body={"detail":"Unsupported media type \"\" in request."} 

HTTPError: 415 Client Error: Unsupported Media Type for url: myUrl

所以我做到了:

Create new company
${headers} =  Create Dictionary   Accept=application/json    Content-Type=application/json

${json1} =  Get file  create.json
${json} =   Evaluate  json.dumps(${json1})
${body} =  Evaluate  json.loads('''${json}''')  json
Create Session    http_session   ${url}   disable_warnings=${True}
${response} = POST On Session   http_session  ${company}  data=${body} headers=${headers}

所以我得到了同样的错误。

我做错了什么?

【问题讨论】:

  • API 调用的文档是怎么说的?是否返回json格式的数据?
  • 是的,以json格式返回数据。

标签: python-3.x robotframework


【解决方案1】:

转换json时出现问题。我是这样做的:

${body} = Evaluate json.loads("""${json}""")

现在成功了。

【讨论】:

    猜你喜欢
    • 2020-05-12
    • 2014-11-11
    • 2018-10-13
    • 2018-07-25
    • 2016-09-09
    • 1970-01-01
    • 2015-08-11
    • 2017-08-28
    • 1970-01-01
    相关资源
    最近更新 更多