Alamofire:参数未传递给服务器
Posted
技术标签:
【中文标题】Alamofire:参数未传递给服务器【英文标题】:Alamofire: Parameters not being passed to server 【发布时间】:2018-09-29 19:08:10 【问题描述】:这是我第一次尝试使用 Alamofire,所以如果这是一个明显的疏忽,请原谅我!我已经阅读了很多其他答案并进行了很多调整,但似乎没有任何效果。
我正在尝试做一个非常简单的测试,其中一个参数从 ios 应用程序传递到服务器,它检查它是否等于“测试”,如果是,则将一些 json 数据返回给 iOS 应用程序。
虽然debugPrint方法输出SUCCESS,但iOS app打印的json数据始终是“未设置”,表示参数实际上并没有传递到php文件中。我想知道是否有人可以帮助我!
目前我并不太关心解析 json,但我只是想找出丢失参数的原因!提前致谢。
这是我的 PHP:
<?php
$name = $_POST["name"];
if (isset($name))
if($name == "Test")
echo json_encode("Correct");
else
echo json_encode("Incorrect");
else
echo json_encode("Not set");
?>
这是我的快速代码:
let url = "http://mywebsite.com/xxx.php"
let parameters: [String:String] = ["name":"Test"]
Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default).responseJSON response in
debugPrint(response)
if let JSON = response.result.value
print("JSON: \(JSON)")
else
print(response.result.error!)
【问题讨论】:
【参考方案1】:将URLEncoding.default
更改为JSONEncoding.default
。
将编码设置为URLEncoding.default
将通过查询字符串传递参数。
(即http://mywebsite.com/xxx.php?name=test)。
还将$POST_
更改为$_POST
【讨论】:
感谢您的回复,我已经尝试过了,但我仍然得到“未设置”,当我尝试在 json_encode 中返回 $name 时,它显示为json_encode
,f.e. echo json_encode(array('success' => 'true')
以上是关于Alamofire:参数未传递给服务器的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire/Swiftyjson - 将 JSON 类型传递给 Objc 协议委托
将字典值作为空值传递给 alamofire 服务 ios swift