HTTP问题.正文参数-Swift



我有这段代码,我需要通过BUDDY传递参数,但我得到了一个"罕见"的错误。有人能帮我吗?THX!!

这就是错误

可选(错误域=NSURLDomain Code=-1017"无法解析响应"UserInfo={NSUnderlyingError=0x7fda33f4cd80{错误域=kCFErrorDomainCFNetwork Code=-1017"(null)"UserInfo={_kCFStreamErrorCodeKey=-1,_kCFSstreamErrorDomainKey=4}},NSErrorFailingURLStringKey=http:/users.php,NSErrorFailingURLKey=http:/users.php,_kCFStreamErrorDomainKey=4,_kCStreamErrorCodeKey=-1,NSLocalizedDescription=无法解析响应})

func registerUser(currentUser: Users, IsRegistered : (isRegistered: Bool, messageString: String) -> ()) {
let REGISTER_URL = "users.php?"
var bodyParams: Dictionary<String, String> = Dictionary()
bodyParams["firstName"] = currentUser.getFirstName()
bodyParams["lastName"] = currentUser.getLastName()
bodyParams["gender"] = currentUser.getGender()
bodyParams["birthday"] = currentUser.getBirthday()
let urlAppend = createFullURL(REGISTER_URL, urlParams: Dictionary())
let request = NSMutableURLRequest(URL: NSURL(string: urlAppend)!)
let loginString = "(currentUser.getEmail()):(currentUser.getPassword())"
let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)!
let base64LoginString = "Basic (loginData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength))"
let headerParams: Dictionary<String, String> = ["Authorization": base64LoginString]
for (key, value) in headerParams{
    request.setValue(value, forHTTPHeaderField: key)
}
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
//
// The problem is the following 4 lines, if I tell, there is no error, but of course, I can not register a user
//
do {
    request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(bodyParams, options: [])
} catch {
    IsRegistered(isRegistered: false, messageString: "Error al parsear los datos.")
}
request.HTTPMethod = METHOD_GET
NSURLSession.sharedSession().dataTaskWithRequest(request) { (data, response, error) in
    if (error != nil) {
        // ERROR HERE //      
        // ERROR HERE //
        // ERROR HERE //
        print(error)
    } else {
        ...
    }
    }.resume()
}

检查此链接HTTPBody

httpBody

这些数据作为请求的消息体发送,就像在HTTPPOST请求中所做的那样。

使用request.HTTPMethod = "GET"时,不能使用HTTPBody来附加&k=v对。将参数添加到URL字符串中。

最新更新