当前位置: 首页 > 知识库问答 >
问题:

请放心,JSON api没有正确读取请求

叶衡虑
2023-03-14

我正在发送一些字符串,例如:

private final String test = "{\"data\":{\"type\":\"test\",\"attributes\":{\"color\":\"yellow\",\"name\":\"TestN\"}}}";

via放心

given()
            .header("Origin", "http://localhost:5000")
            .header("Accept-Encoding", "gzip, deflate, br")
            .header("Accept-Language", "pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7")
            .header("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36")
            .header("Content-Type", "application/vnd.api+json")
            .header("Accept", "application/vnd.api+json")
            .header("Cookie", "xxxxxx")
            .header("Connection", "keep-alive")
            .header("Cache-Control", "no-cache")
            .header("Host", "localhost:4400")
            .body(test).with()
            .log().everything()
            .when()
            .post(base + "test-endpoint")
            .then().statusCode(201);

不幸的是,API返回500。我通过邮递员发送相同的请求,它工作得很好。唯一的区别是“assings”部分。邮递员请求后,看起来像:

assigns: %{
 doc: %Jabbax.Document{
   data: %Jabbax.Document.Resource{
     attributes: %{"appointment_color" => "yellow", "name" => "TestN"},
     id: nil,
     links: %{},
     meta: %{},
     relationships: %{},
     type: "test"
   },
   errors: [],
   included: [],
   jsonapi: %{version: "1.0"},
   links: %{},
   meta: %{}
 }
},

当“放心”请求后,它是空的:

assigns: %{},

添加了所有标头,我尝试将其作为从.json文件解析的字符串发送。一切都给出相同的结果。有人知道问题出在哪里?

共有1个答案

桑宇
2023-03-14

线索是 REST 保证添加了字符集信息 - 此处描述了类似的问题。

 类似资料:
  • 这是我的代码Rest我的api上传文件 我的API有一个验证,当这个请求made.For上面的请求时,它会检查文件扩展名. xml我的api没有收到. xml文件扩展名,所以它会给出400个错误 仅供参考:使用Postman时,同样的请求也能正常工作

  • 我得到的回应是这样的: 我有一个json回复: 我可以用放心的方法提取字符串吗?

  • 问题内容: 我现在使用的代码: 似乎工作正常,但我不确定在将ByteBuffer返回池之前是否需要ByteBuffer。我什至不确定要使用。文档中没有太多关于它的内容。 问题答案: 读取请求正文的一种更简单的方法是将其分派到一个工作线程,该工作线程可以使用。 有两种方法:使用或文档中所示的调度模式。这是使用的示例: 在基本上没有派遣你。

  • 对于包含JSON主体的post请求,我使用rest assured 我的post请求代码是:- 好心的帮助....

  • 假设我调用了一个RESTful服务,它在响应体中返回这个 我只需要得到映射键为' en '的值 所以我期望过滤后的结果会像这样 [“Reason1 英文翻译”、“Reason2 英文翻译”] 或 {"Reason1英文翻译","Reason2英文翻译"} 我已经尝试了下一个代码,但仍未完成 然后它返回 [{en=Reason1英文翻译,es=Reason2西班牙文翻译},{en=Reason2英文

  • 我有一个静态网站托管在AWS CloudFront上。在一条路由上,我需要接受POST方法,因为它是OAuth服务器的重定向,所以我决定开发一个lambda@edge。 我的想法是在'Viewer Request'上注册lambda并截取POST方法,读取正文并复制标头上的值,以使它们在我的静态网站上可读(我知道我可以用javascript访问Referrer标头)。 我设置了Lambda,我可以