我有一个我正在测试的API,如果我通过" form-data"提交我的数据。它具有以下值:
key: response[comment]
value: This is a test
但是如果我在" raw"中做了一些自定义JSON。具有以下结构的选项卡,它不起作用:
{ "response[comment]": "This is a test" }
由于服务器没有给我任何关于错误的详细信息,所以这让我很生气。
我觉得这个对象的编码出错了,但我使用的是Angular而且我得到了相同的400错误,而我相当肯定它应该只使用JS对象作为.post。上的数据
任何帮助将不胜感激!
答案 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)
答案 5 :(得分:0)
在我的情况下,网址为localhost/index.php?userId=1
- 我使用原始模式{ "username":"abc" }
然后,我将网址转换为localhost/index.php?userId=1&username=abc
- 它适用于GET
和POST
,其中包含以下json:{ "userId":"1","username":"abc" }
和网址localhost/index.php?userId=1&username=abc
。