邮递员表格数据有效,但原始等价物不起作用

时间:2015-01-03 23:25:48

标签: javascript angularjs api postman

我有一个我正在测试的API,如果我通过" form-data"提交我的数据。它具有以下值:

key: response[comment]
value: This is a test

但是如果我在" raw"中做了一些自定义JSON。具有以下结构的选项卡,它不起作用:

{ "response[comment]": "This is a test" }
由于服务器没有给我任何关于错误的详细信息,所以这让我很生气。 我觉得这个对象的编码出错了,但我使用的是Angular而且我得到了相同的400错误,而我相当肯定它应该只使用JS对象作为.post。

上的数据

任何帮助将不胜感激!

6 个答案:

答案 0 :(得分:13)

确保您的Content-Type标题!

如果您的原始数据是JSON:Content-Type: application/json

我遇到过与您类似的问题:我的请求是使用表单数据,但不是原始 ...并且在调试请求服务器端之后,我意识到我的请求内容类型为"text/plain;charset=UTF-8" ..即使在旁边的下拉列表中选择了 JSON ...

希望它为下一个节省时间;)

答案 1 :(得分:8)

好的,我找到了。

显然是"评论[回复]"实际上是:

{"comment":{"response": "something"}}
在JSON中

了解了一些事情:)

答案 2 :(得分:0)

在我的情况下,一个表单数据条目被转换为标题,并且根本没有包含在正文中。它还可以显式设置标题,而不是输入表单数据。不涉及其他答案的Content-Type和JSON格式。我不希望任意形式数据键以这种方式工作;在这种情况下唯一使用的密钥是“ID”。

答案 3 :(得分:0)

我也有一个API,如果我通过" form-data"提交我的数据。它具有以下值:

key:survey_answer [answers_json]

价值:{" 2456-9876-4ff7-9807-4097ed21be57":"测试邮递员 - 今天"}

我尝试将其转换为原始数据,所以最后我可以通过

解决这个问题

{" survey_answer":{" answers_json":{" 2ed4e729-c1fa-4ff7-9807-4097ed21be57":"来自的测试泰莎"}}}

并且如果您的原始数据是JSON:设置Content-Type: application / json

希望这会有所帮助:)

答案 4 :(得分:0)

使用JSON(application / json)选择原始选项。

enter image description here

答案 5 :(得分:0)

在我的情况下,网址为localhost/index.php?userId=1 - 我使用原始模式{ "username":"abc" }

然后,我将网址转换为localhost/index.php?userId=1&username=abc - 它适用于GETPOST,其中包含以下json:{ "userId":"1","username":"abc" }和网址localhost/index.php?userId=1&username=abc