当我在数据库中使用 Alamofire 发送三个数组帖子时出现错误?
Posted
技术标签:
【中文标题】当我在数据库中使用 Alamofire 发送三个数组帖子时出现错误?【英文标题】:I get error while I send three array post with Alamofire in database? 【发布时间】:2020-09-29 07:35:41 【问题描述】:这是我的 php 代码。我需要在这里发送 3 个参数,例如 cammand 、 mobile 和 token 。包括“../db.php”;
//$_POST['command'] ;//
$command = $_POST['command'];
if ($command == "register_user") //register user
$mobile = $_POST['mobile'];
$token = $_POST['token'];
$sql = "SELECT * FROM tbl_user where mobile =$mobile";
$result = mysqli_query($connection, $sql);
$num = mysqli_num_rows($result);
这是我的快速代码。
import Foundation
import UIKit
import Alamofire
class LoginViewController: UIViewController
let appDelegate = UIApplication.shared.delegate as! AppDelegate
@IBOutlet weak var inputTelephoneNumber: UITextField!
override func viewDidLoad()
super.viewDidLoad()
@IBAction func loginBtn(_ sender: Any)
let Parametrs : Parameters = [
"command": "register_user",
"mobile": inputTelephoneNumber.text!,
"token": appDelegate.myToken!
]
AF.request("http://192.xxxxxxxxx/xxxxxxxx/api/sms_verify.php", method: .post, parameters: Parametrs, encoding: JSONEncoding.default)
.responseJSON response in
print(response)
let tokenURL = "http://192xxxxxx/xxxxxxxxx/api/sms_verify.php"
if let url = URL(string: tokenURL)
let task = URLSession.shared.dataTask(with: url)
data, response, error in
if error != nil
print(error!)
else
if let responseString = String(data: data!, encoding: .utf8)
print(responseString)
task.resume()
我从 xcode 收到此错误。
<br />
<b>Notice</b>: Undefined index: command in <b>/opt/lampp/htdocs/foroshgah1/api/sms_verify.php</b> on line <b>5</b><br />
failure(Alamofire.AFError.responseSerializationFailed(reason: Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(error: Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo=NSDebugDescription=Invalid value around character 0.)))
我尝试发送三个参数,例如 cammand = register_user 、 mobile 和 token。
我尝试像 json 编码一样发送它们,但我不知道我的格式是否正确?
【问题讨论】:
这能回答你的问题吗? Receive JSON POST with PHP 我的 PHP 代码工作正常,没有任何问题。我有问题 swift 如果您将数据作为 JSON 发送,那么您需要修改您的 PHP 代码 - 当您发送 JSON 时,PHP 不会填充 $_POST。或者您首先需要从客户端发送其他内容 - 例如“正常”application/x-www-form-urlencoded
请求。
我说我的 PHP 代码工作正常,我的 android 应用程序与这个 PHP 工作得很好。
如果你有使用 Alamofire 的经验写评论。
【参考方案1】:
要在 post 请求中传递 URL 编码的参数,您需要调用 Alamofire 的请求函数,将 URLEncoding
的实例作为 encoding
参数传递:
AF.request(
"http://192.xxxxxxxxx/xxxxxxxx/api/sms_verify.php",
method: .post,
parameters: Parametrs,
encoding: URLEncoding.default
).responseJSON response in
print(response)
【讨论】:
以上是关于当我在数据库中使用 Alamofire 发送三个数组帖子时出现错误?的主要内容,如果未能解决你的问题,请参考以下文章
当我在 Alamofire 中使用 UserDefaults.standard.object 时,它显示“调用中的额外参数”错误