Skip to content

Instantly share code, notes, and snippets.

@flandy84
Last active April 7, 2016 18:19
Show Gist options
  • Save flandy84/727a0bc895b7003fa6cadb101b59b30a to your computer and use it in GitHub Desktop.
Save flandy84/727a0bc895b7003fa6cadb101b59b30a to your computer and use it in GitHub Desktop.
func performRequestWithUsername(username: String, password: String) {
let loginRequest = LoginRequest(userId: username, password: password)
let json = loginRequest.toJSON()
let urlRequest = NSMutableURLRequest( URL: NSURL(string: "https://SWIFT-WEBSERVICE-URL/login")!,
cachePolicy: .ReloadIgnoringLocalCacheData,
timeoutInterval: 60)
urlRequest.HTTPMethod = "POST"
urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
urlRequest.HTTPBody = try? json.rawData()
let requestTask = NSURLSession.sharedSession().dataTaskWithRequest(urlRequest) {
(data: NSData?, responseHeader: NSURLResponse?, error: NSError?) -> Void in
dispatch_async(dispatch_get_main_queue()) {
if let err = error { // NO response available
self.backendTV.text = "update error: \(err)"
}else{ //response available
let serverResponseStatusCode = (responseHeader as! NSHTTPURLResponse).statusCode
switch serverResponseStatusCode{
case 200: //STATUS_OK
let json = JSON(data: data ?? NSData())
let loginResponse = LoginResponse(json: json)
self.backendTV.text = loginResponse.text
//expected JSON-response structure
// {
// "user":{
// "text" : "530",
// }
// }
default:
self.backendTV.text = "\(responseHeader) \n StatusCode: \(serverResponseStatusCode)"
}
}
}
}
requestTask.resume()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment