当我打电话从iOS版得到错误与Alamofire API -
你调用的对象是空的
所有其他的API都工作正常。不知道它是从后端与否。
我调试和检查记录与PO命令,但所有的参数与要求去。
任何人都可以提出一个解决办法?
任何快速帮助将不胜感激。
谢谢
代码下面给出:
let strToken: String = (USER_DEFAULT.value(forKey: "token") as? String)!
let strQuerystring = "token=" + strToken
let parameters: [String: String] = ["FirstName": txtFirstName.text!, "LastName":txtLastName.text!,"Gender":txtGender.text!,"DOB":strDate,"RelationId":strMemberID]
callPostApi(fileName: postAddMember + strQuerystring, parameters: parameters) { responseObject, errorResponse in
if(errorResponse == nil)
{
if let json = responseObject as? NSDictionary
{
let strStatus: Bool = json.value(forKey: "Status") as! Bool
let strMessage: String = json.value(forKey: "Message") as! String
if(strStatus == true)
{
forAlert(strMessage)
_ = self.navigationController?.popViewController(animated: true)
}
else
{
forAlert(strMessage)
}
}
else
{
forAlert("noResponseMessage".localized)
}
}
else
{
forAlert("noResponseMessage".localized)
}
SKActivityIndicator.dismiss()
}
}
你并不需要序列化的parameters
。从Alamofire Docs参数的类型必须为Parameters
的
let parameters: Parameters = [
"foo": "bar",
"baz": ["a", 1],
"qux": [
"x": 1,
"y": 2,
"z": 3
]
]
在你的情况import Alamofire
然后声明parameters
这样不序列化:
let parameters: Parameters = [
"FirstName": txtFirstName.text!,
"LastName":txtLastName.text!,
"Gender":txtGender.text!,
"DOB":strDate,
"RelationId":strMemberID
]
响应对象不json
,您将需要分配值各自变量之前先对其进行序列化。是这样的:
guard let dictionary = try? JSONSerialization.jsonObject(with:responseObject!,options: []) as! [String: AnyObject] else { return }
希望工程。
你需要在你的身体参数,数据符合的URLRequest
和创建请求如下:
let auth = "Bearer"+token // or your Authorization type
let url = URL.init(string:urlString)
var request = URLRequest(url: url!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue(auth, forHTTPHeaderField: "Authorization")
request.httpBody = try! JSONSerialization.data(withJSONObject: parameters)
Alamofire.request(request)
.responseJSON { response in
// Handling your data
}
试试这个,希望能够帮助您。