我正在尝试使用POSTMAN模拟来自移动应用程序的POST调用。我做了以下事情:
- 动词:POST
- 参数:添加了2个参数(均显示在URL中)
- 标题:添加键值对-内容类型/application/json
- 正文:选择"表单数据"单选按钮并添加2个键值对来表示表单输入-电子邮件/someone@gmail.com&年龄/18
当我提交请求时,在我的服务器代码(PHP)中,我打印$request对象,我只得到params(步骤#2),而没有得到表单字段。
想知道POSTMAN是否没有传递表单数据,或者我没有看对地方(即$request对象中)。
我还尝试使用"原始"而不是"表单数据",并传递了一个JSON,但结果相同。
我尝试从web应用程序调用相同的API,我在$request对象中获得了正确的form-data值
我们非常感谢为解决我面临的问题所提供的任何帮助。我花了几乎一整天的时间浏览POSTMAN文档并在谷歌上搜索,但进展不大。
动词:POST
纠正
参数:添加了2个参数(均显示在URL中)
你可能不应该那样做
如果您正在进行POST请求,请将它们放在body选项卡上的"表单数据"中。(POST请求可能包含查询字符串数据,但这是不寻常的)。
标题:添加的键值对-内容类型/application/json
绝对不要那样做
您发送的是表单编码的数据,而不是JSON。
如果你不覆盖,邮差会自动设置正确的内容类型。
正文:选择"表单数据"单选按钮并添加2个键值对来表示表单输入-电子邮件/someone@gmail.com&年龄/18
可能是正确的。表单的默认编码是x-www-form-urlencoded,但PHP可以同时处理这两种编码。
我只得到params(步骤#2),而不是表单字段。
PHP本机不支持使用JSON编码的消息体解析HTTP请求,因此它可以看到您发送JSON的声明,并且什么也不做。
如果它确实支持JSON,那么它将尝试将表单编码的数据解析为JSON并失败。
我还尝试使用"原始"而不是"表单数据",并传递了一个JSON,但结果相同。
您必须手动解码JSON编码的请求体。