Php 发送POST请求:url触发器中缺少尾部斜杠,正在重定向GET请求
我试图将以下POST请求发送到Php 发送POST请求:url触发器中缺少尾部斜杠,正在重定向GET请求,php,http-post,postman,Php,Http Post,Postman,我试图将以下POST请求发送到https://myurl.com/directorynameJSON格式: { "username": "test", "password": "test2" } 我的服务器上的index.php文件需要调试以下内容: var_dump($_SERVER['REQUEST_METHOD']); $raw_data = file_get_contents('php:/
https://myurl.com/directoryname
JSON格式:
{
"username": "test",
"password": "test2"
}
我的服务器上的index.php
文件需要调试以下内容:
var_dump($_SERVER['REQUEST_METHOD']);
$raw_data = file_get_contents('php://input');
$data = json_decode($raw_data);
但是当我尝试var\u dump()
和echo
这些变量时,我得到了:
请求方法:字符串(3)“获取”
原始数据:字符串(0)“
数据:NULL
PHP中的这些代码似乎没有任何问题,因此我假设问题一定是在我发送此请求的方式上。我认为您的脚本非常好。 仔细检查请求所指向的URL 使用echo语句进行调试 尝试使用表单数据选项发送数据
使用print\u r($\u POST);并根据默认值验证一次,它以GET开头,所以您要确保使用POST方法。 由于我看不到您是如何发送原始数据的,我建议您在此处查看他们的文档: 您还可以在此处测试他们的REST api,以发布和获取方法,查看数据的来去: 下面是我运行它得到的结果(请注意我使用的参数):
该脚本中似乎没有错误,我认为您应该在@CBore的帮助下在评论中检查您的服务器,并向
发送请求https://myurl.com/directoryname
(不带尾随斜杠)将触发重定向到https://myurl.com/directoryname/
,从而发出GET请求
POST请求应发送至https://myurl.com/directoryname/
(带尾随斜杠)或https://myurl.com/directoryname/filename.php
关于url中斜杠的更详细解释可以在这里找到:Put in
var\u dump($\u SERVER['REQUEST\u METHOD'])代码>,并检查它是否真的是POST。@CBroe它返回GET,但我已经在postman中选择了POST。但是,如果我将相同的请求发送到“postmanecho.com/post”,它就可以正常工作。这是关于我应该在PHP文件中添加什么以使其处理POST请求吗?最有可能的解释是,您的系统已通过重定向响应POST请求,客户端(邮递员)随后通过对相同URL发出GET请求。您将此发送到哪个URL,以及如何设置?@CBroe这是一个远程云服务器,我试图设置一个后端API,以便在iOS上的应用程序中注册。它基本上是目录中的index.php文件。我已经更新了上面的代码,以显示关于这个index.php文件的更多信息。“它基本上是一个目录中的index.php文件。”-那么,同样,您实际将请求发送到哪个URL?是否直接针对index.php文件?或者只是目录?如果您将此信息发送到https://example.com/directoryname
,则很可能会得到“尾部斜杠重定向”。解决方法是将其发送到https://example.com/directoryname/
then(或直接发送到index.php。)如果我将同一个POST请求发送到“postman echo.com/POST”,那么它也可以正常工作。但是如果我var_dump($_SERVER['REQUEST_METHOD'])
在我服务器上的PHP文件中,它仍然返回“GET”。