81

我正在尝试使用 Chrome 扩展 Postman 测试一个简单的 PHP 页面。当我发送 URL 参数时,脚本工作正常(例如,变量在$_REQUEST参数中可用)。当我将它们作为x-www-form-urlencoded参数发送时,$_REQUEST参数仅包含PHPSESSID.

剧本:

<?php
var_export($_REQUEST);
?>

当我发送 URL 参数时,$_REQUEST包括它们: 网址参数

但是当我将它们作为POST变量发送时,$_REQUEST不包括它们: 在此处输入图像描述

我错过了什么?

4

11 回答 11

104

我正在将 Postman 中的 url 设置为,http://但 Apache 正在重定向到https://,并且 POST 变量在此过程中被丢弃了。

在我将其更改为 后https://,POST 变量工作正常。

另请参阅:https ://stackoverflow.com/a/28461500/704803

于 2015-04-23T04:25:30.947 回答
102

我在 PostMan 和 Advance REST Client 中都遇到了同样的问题。我通过 fiddler 查了一下,发现我的请求载荷没有转换成 JSON 格式。

我将 Body 中的数据作为x-www-form-urlencoded传递 在此处输入图像描述

您可以通过在请求标头中 使用Content-Type作为application/x-www-form-urlencoded来修复它。在此处输入图像描述

于 2015-08-12T23:59:27.760 回答
26

只需使用Body Tab并输入post parameters那里。请注意,Body Tab如果Get选中则禁用。

于 2016-01-11T17:44:06.647 回答
15

检查标题中的内容类型。我在将原始 JSON 和我的内容类型作为 POSTMAN 标头中的 application/json 发送时遇到问题。

我的 php 在请求帖子中看到了 jack all。直到我将内容类型更改为 application/x-www-form-urlencoded 并使用 RAW 文本区域中的 JSON 并将其类型为 JSON,我的 PHP 应用程序才开始看到发布数据。不是我在处理原始 json 时所期望的,但它现在可以满足我的需要。

邮递员 POST 请求

于 2014-11-30T16:35:48.427 回答
8

当您发送参数时,x-www-form-urlencoded您需要将请求的标头设置为使用Content-Typeasapplication/x-www-form-urlencoded

于 2014-06-11T17:42:23.730 回答
4

我遇到了同样的问题。为了修复它,我添加了以下标题:

Content-Type: application/json

即使我在原始帖子字段参数中也有“json”类型,我也必须手动添加内容类型。

于 2015-02-05T23:24:39.990 回答
4

抱歉,如果这是线程死灵术,但这在今天仍然很重要,尤其是使用了多少 API!

我遇到的一个问题是:我不知道您需要在“ Key ”列下放置:“ Content-Type ”;我认为这是一个用户密钥,当它返回请求时,它不是。

所以像这样简单的事情可能会对您有所帮助,我认为 Postman 可以更好地措辞该专栏,因为在使用 Fiddler 时我什至不必阅读文档;而我对邮递员做了。

邮差图片

于 2018-09-14T15:03:24.740 回答
4

而不是使用raw JSON body,尝试使用form-data

表单数据请求

于 2020-01-27T14:18:34.737 回答
1

对我来说,服务器期望 HTTPS 请求,但我没有在 URL 中指定。钩子会到达服务器,但主体是空的。

于 2016-09-16T11:24:49.970 回答
0

有时“邮递员”中的版本问题:

我也面临同样的问题。使用最旧版本的邮递员发送数据时。
那个时候我在服务器端收到了空的 json 数据。
已经解决了这个问题,一旦我卸载了最旧版本的邮递员并安装了最新版本。

于 2017-06-17T08:31:48.420 回答
-1

我也面临这个问题,我只是在 url 中添加 www,比如 -

https://www.your-domain.com/

于 2021-02-10T07:03:45.593 回答