Sae*_*ahi 3 http-post ios uialertcontroller swift3
嗨,我正在使用post and get响应方法,它工作良好,但是有两个问题:1-当响应为get时,我无法使用警报; 2-在另一个变化的响应中,我无法获得api_token和Id
这是我用于发布的代码**我使用的是本地代码,但是您可以更改网址并对此进行测试**
var request = URLRequest(url: URL(string: "http://172.16.15.137:8888/TheoryTipo/public/api/register")!)
request.httpMethod = "POST"
let postString = "name=\(usernameforsignup.text!)&email=\(emailforsignup.text!)&password=\(passwordforsignup.text!)&tel=\(phonenumberforsignup.text!)"
print(postString)
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
// check for fundamental networking error
print("error=\(error)")
let alertController = UIAlertController(title: "Error", message: "can't Connect to the server", preferredStyle: UIAlertControllerStyle.alert)
let okAction = UIAlertAction(title: "retry", style: UIAlertActionStyle.default)
{
(result : UIAlertAction) -> Void in
}
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)
alertController.view.tintColor = UIColor.red
alertController.view.backgroundColor = UIColor.red
alertController.view.layer.cornerRadius = 0.1 * alertController.view.bounds.size.width
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}
let responseString = String(data: data, encoding: .utf8)
print("responseString = \(responseString)")
print("OK")
let alertController = UIAlertController(title: "Complete", message: "Complete Sign Up" , preferredStyle: UIAlertControllerStyle.alert)
let okAction = UIAlertAction(title: "ok", style: UIAlertActionStyle.default)
{
(result : UIAlertAction) -> Void in
}
alertController.addAction(okAction)
self.present(alertController, animated: true, completion: nil)
alertController.view.tintColor = UIColor(red: 50/255, green: 118/255, blue: 43/255, alpha: 1.0)
alertController.view.backgroundColor = UIColor(red: 50/255, green: 118/255, blue: 43/255, alpha: 1.0)
alertController.view.layer.cornerRadius = 0.1 * alertController.view.bounds.size.width
}
task.resume()
Run Code Online (Sandbox Code Playgroud)
**请记住,第一个警报运行良好-该警报是应用程序无法连接到服务器的时间,但是问题是第二个警报,当用户完成文本字段并点击注册按钮时,应用程序将崩溃并重要的是,尽管该应用程序将崩溃,但信息仍会正确发送到服务器**
您只需要在主线程上执行与UI相关的代码。
DispatchQueue.main.async {
// Alert Controller Code Here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |