这是我的代码,我无法编译它。 我正在尝试登录我的服务器,但它不允许我这样做 对不起,我是编程新手,我已经研究过stackoverflow,关于这个错误,我只能解析字典或数组。但我通过复制我的JSON响应来搜索,但它不起作用。 任何建议都会有所帮助!!
import UIKit
class Login: UIViewController {
@IBOutlet var Username: UITextField!
@IBOutlet var Password: UITextField!
@IBAction func Login(sender: UIButton) {
let username=Username.text
let password=Password.text
let URL_LOGIN="http://172.22.95.116/SoilCondition/app/getLogin.php?USERNAME=" + username! + "&PASSWORD=" + password!;
let requestURL = NSURL(string: URL_LOGIN)
let request = NSMutableURLRequest(URL: requestURL!)
request.HTTPMethod = "POST"
let postParameters = "username="+username!+"&password="+password!;
request.HTTPBody = postParameters.dataUsingEncoding(NSUTF8StringEncoding)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request){
data, response, error in guard let data = data where error == nil
else {
print("error: \(error)")
return
}
do{
let myJSON = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary
if let parseJSON = myJSON{
var msg: String!
msg = parseJSON["message"] as! String?
print(msg)
}
/* if let parseJSON = myJSON {
var msg : String!
msg = parseJSON["message"] as! String?
print(msg)
}*/
/*if data != nil {
json = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
println("json: \(json)")
if let dictionary = parseJSON(jsonString) {
println("dictionary: \(dictionary)")
}*/
} catch let parseError{
print(parseError)
}
}
task.resume()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
答案 0 :(得分:0)
我找到了关于错误代码3840的this question。
正如它所说,问题可能是您的服务器没有向您返回有效的JSON。
现在,你说:
我只能解析字典或数组
我不知道这是否意味着您能够将您从服务器收到的响应实际解析为有效的JSON:
let myJSON = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary
但如果它没有,那么一个好的起点可能是验证你的服务器是否真的向你返回有效的JSON。
为此,您可以尝试直接从cURL或postman致电您的服务器,看看您获得的回报。
希望对你有所帮助。