使用Postman发送POST参数不起作用,但发送GET参数不起作用

时间:2014-06-11 17:13:44

标签: php postman

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

剧本:

<?php
var_export($_REQUEST);
?>

当我发送网址参数时,$_REQUEST包含以下内容: URL parameters

但是当我将它们作为 POST 变量发送时,$_REQUEST并不包含它们: enter image description here

我错过了什么?

11 个答案:

答案 0 :(得分:73)

我在PostMan和Advance REST Client中遇到了同样的问题。我检查了fiddler,发现我的请求有效负载没有转换为JSON格式。

我在Body中传递我的数据为 x-www-form-urlencoded enter image description here

您可以在请求标头中使用 Content-Type 作为 application / x-www-form-urlencoded 进行修复。 enter image description here

答案 1 :(得分:50)

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

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

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

答案 2 :(得分:17)

只需使用p:commandButton并在那里输入Body Tab即可。请注意,如果选择了post parameters,则Body Tab会被停用。

Tutorial with Screenshots

答案 3 :(得分:12)

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

我的php在请求帖子中看到了杰克。直到我将内容类型更改为 application / x-www-form-urlencoded与RAW textarea中的JSON及其类型为JSON,我的PHP应用程序开始查看发布数据。不是我在处理原始json时的预期,但它现在正在为我所需要的工作。

postman POST request

答案 4 :(得分:6)

修改

x-www-form-urlencoded发送参数时,您需要为请求设置标题,使用Content-Type作为application/x-www-form-urlencoded

答案 5 :(得分:4)

我遇到了同样的问题。为了解决这个问题,我添加了以下标题:

Content-Type: application/json

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

答案 6 :(得分:2)

很抱歉,如果这是线程死灵法则,但今天仍然有用,尤其是使用了多少API!

我遇到的一个问题是:我不知道您是否需要在“ ”列下输入:“ Content-Type ”;我以为这是一个用户密钥,它在请求中返回时不是,而是不是。

如此简单的事情可能会对您有所帮助,我认为Postman可以更好地说明该专栏,因为在使用Fiddler时,我什至不必阅读《文档》。而我是和邮递员在一起的。

question

答案 7 :(得分:1)

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

Form data request

答案 8 :(得分:0)

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

答案 9 :(得分:0)

  

有时版本问题在&#39; Postman&#39; :

     

我遇到了同样的问题。使用最老版本的邮递员发送数据时   那次我收到了服务器端的空json数据   并且我已解决此问题,一旦我卸载最旧版本的邮递员并安装了最新版本。

答案 10 :(得分:-1)

我也遇到了这个问题,我只是在网址中添加了 www -

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