我正在iOS/Swift中开发Web应用程序的客户端,现在我正在测试与服务器通信的部分.我在localhost上设置了一个基本网站:
http://localhost/~username/ConnectivityTest/login
(对应/Users/username/Sites/ConnectivityTest/login于我的Mac文件系统).
服务器端脚本(index.php在上面的目录中)是:
<?PHP
$userId = $_POST["userId"];
$password = $_POST["password"];
if (empty($userId) || empty($password)){
echo "Error: empty post variables";
}
else{
// Process credentials...
Run Code Online (Sandbox Code Playgroud)
我NSURLSession在iOS上使用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"
}
Run Code Online (Sandbox Code Playgroud)
Alternativley,因为form-data它是:
userId my-user-name [Text]
password 12345 [Text]
Run Code Online (Sandbox Code Playgroud)
因为x-www-form-urlencoded,它是:
userId my-user-name
password 12345
Run Code Online (Sandbox Code Playgroud)
我尝试的一切都给了我"Error: empty post variables"在代码的错误路径中设置的响应(即,$_POST['userId']或者$_POST['password']为空). …