Php 发送POST请求:url触发器中缺少尾部斜杠,正在重定向GET请求

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:/

我试图将以下POST请求发送到
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”。