Alamofire 发布请求未执行
Posted
技术标签:
【中文标题】Alamofire 发布请求未执行【英文标题】:Alamofire Post Request is not Executed 【发布时间】:2017-07-20 12:31:44 【问题描述】:我正在向我的 API 发出 POST 请求。突然之间,请求被跳过了。我已经尝试调试它,但直到现在都没有成功。
这是我的要求:
@IBAction func checkLogin(_ sender: Any)
guard let managedContext = self.managedObjectContext else return
let user = NSEntityDescription.insertNewObject(forEntityName: User.identifier, into: managedContext) as! User
let url = ""
let parameters: Parameters =
["username" : usernameTextField.text!, "password" : passwordTextField.text!]
Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default).responseJSON (responseData) -> Void in
let results = JSON(responseData.result.value!)
print(results)
user.firstName = results["firstname"].string!
let responseString : String = responseData.response?.allHeaderFields["Set-Cookie"] as! String
if let range = responseString.range(of: ";")
let startIndex = (responseString.range(of: "="))
let cookie = responseString[(startIndex?.upperBound)!...range.lowerBound]
user.setValue(cookie, forKey: "token")
do
try self.dataController.saveContext()
catch
print("Save Error User")
我正在使用 Alamofire 4.5 和 Swift 3.1。
【问题讨论】:
您是否在Alamofire
闭包内添加了断点?请求是异步的,因此如果您只是单步执行代码,它可能不会被调用。
另外,你的url
是空白的,是为了这个例子吗?
@Ollie 的 URL 是空白的 :) 是的,我添加了一堆断点。调用请求后,调试器直接跳到最后。
如果您的网址为空,那么 Alamofire 将如何回复您?
@devangbhatt 空白网址仅用于场景描述。在“工作”示例中,Url 已填充
【参考方案1】:
请使用不同类型的数据请求处理块并再次检查。
Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default)
.responseJSON response in
print("JSON Response")
.responseData response in
print("Data Response")
.responseString response in
print("String Response")
.responsePropertyList response in
print("PropertyList Response")
【讨论】:
以上是关于Alamofire 发布请求未执行的主要内容,如果未能解决你的问题,请参考以下文章