postman怎么运行php文件,无法使用Postman将POST变量发送到localhost上的php脚本

我正在iOS / Swift中开发Web应用程序的客户端,现在我正在测试与服务器通信的部分 . 我在localhost上设置了一个基本网站:

http://localhost/~username/ConnectivityTest/login

(对应于Mac文件系统中的 /Users/username/Sites/ConnectivityTest/login ) .

服务器端脚本(上面目录中的 index.php )是:

$userId = $_POST["userId"];

$password = $_POST["password"];

if (empty($userId) || empty($password)){

echo "Error: empty post variables";

}

else{

// Process credentials...

我在iOS上使用 NSURLSession API,但我注意到无论我如何配置我的请求,即使连接成功(即,返回http代码200和响应正文作为数据), POST 变量也不可用(空)在服务器端 .

所以我决定尝试在浏览器上使用Postman手动发送请求(试图排除我的iOS / Swift代码上的任何错误),但我不知道应该如何配置它(我不熟悉HTTP,它一切都让我有点困惑):

我应该将 Content-Type 标头设置为 application/json , application/x-www-form-urlencoded ,还是什么?

我应该将身体数据发送为 form-data , x-www-form-urlencoded 或 raw ?

在Postman中,我将身体数据(原始)设置如下:

{

"userId":"my-user-name",

"password":"123456"

}

Alternativley,as form-data ,它是:

userId my-user-name [Text]

password 12345 [Text]

如 x-www-form-urlencoded ,它是:

userId my-user-name

password 12345

我尝试的一切都给了我在代码的错误路径中设置的响应 "Error: empty post variables" (即 $_POST['userId'] 或 $_POST['password'] 为空) .

相反,如果我将变量作为URL参数传递:

http://localhost/~username/ConnectivityTest/login/index.php?userId=my-user-name&password=12345

...并在脚本中以 &_GET['userId'] 和 $_GET['password'] 访问它们,它工作正常 .

我错过了什么?

UPDATE: 我在与php文件相同的目录中创建了一个HTML文件:

User name:

Password:

如果我在浏览器中加载上述页面,填写字段并提交表单,我的php脚本上的 $_POST 变量将获得正确的值 . 所以php代码是正确的,我在Postman中设置我的请求错误(仍然不知道为什么) .

UPDATE 2: 为了防止localhost出现问题,我将脚本移动到我控制的共享wb托管服务,但结果是一样的 .

UPDATE 3: 我以前一定以前都错过了它,但是我有一个设置我正在工作:

Headers : Content-Type application/x-www-form-urlencoded

身体("raw"): userId=my-user-name&password=123456

但是,这限制了我对键/值的平面列表;如果我希望向服务器发送更多结构化(即嵌套)数据,我需要JSON支持...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值