我试图使用Chrome扩展程序Postman测试一个简单的PHP页面。当我发送URL参数时,脚本工作正常(例如,变量在$_REQUEST
参数中可用)。当我以x-www-form-urlencoded
参数发送时,$_REQUEST
参数仅包含PHPSESSID
。
剧本:
<?php
var_export($_REQUEST);
?>
当我发送网址参数时,$_REQUEST
包含以下内容:
但是当我将它们作为 POST
变量发送时,$_REQUEST
并不包含它们:
我错过了什么?
答案 0 :(得分:73)
我在PostMan和Advance REST Client中遇到了同样的问题。我检查了fiddler,发现我的请求有效负载没有转换为JSON格式。
我在Body中传递我的数据为 x-www-form-urlencoded
您可以在请求标头中使用 Content-Type 作为 application / x-www-form-urlencoded 进行修复。
答案 1 :(得分:50)
我将Postman中的url设置为http://
,但Apache正在重定向到https://
,并且不知何故POST变量在此过程中被丢弃。
我将其更改为https://
后,POST变量正常工作。
答案 2 :(得分:17)
只需使用p:commandButton
并在那里输入Body Tab
即可。请注意,如果选择了post parameters
,则Body Tab
会被停用。
答案 3 :(得分:12)
检查标题中的内容类型。我在POSTMAN标题中发送原始JSON和我的内容类型作为application / json时遇到了问题。
我的php在请求帖子中看到了杰克。直到我将内容类型更改为 application / x-www-form-urlencoded与RAW textarea中的JSON及其类型为JSON,我的PHP应用程序开始查看发布数据。不是我在处理原始json时的预期,但它现在正在为我所需要的工作。
答案 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时,我什至不必阅读《文档》。而我是和邮递员在一起的。
答案 7 :(得分:1)
答案 8 :(得分:0)
对我来说,服务器需要HTTPS请求,但我没有在URL中指定。钩子会到达服务器,但是身体将是空的。
答案 9 :(得分:0)
有时版本问题在&#39; Postman&#39; :强>
我遇到了同样的问题。使用最老版本的邮递员发送数据时 那次我收到了服务器端的空json数据 并且我已解决此问题,一旦我卸载最旧版本的邮递员并安装了最新版本。
答案 10 :(得分:-1)
我也遇到了这个问题,我只是在网址中添加了 www -