我正在按照这个答案在我的swift项目中进行HTTP调用。 How to make an HTTP request in Swift?
以下是我用来进行同步调用的代码
let urlPath: String = "http://agentreview.net/api/login/?username=asdf&password=asdf"
var url: NSURL = NSURL(string: urlPath)!
var request1: NSURLRequest = NSURLRequest(URL: url)
var response: AutoreleasingUnsafeMutablePointer<NSURLResponse?> = nil
var error: NSErrorPointer = nil
var dataVal: NSData = NSURLConnection.sendSynchronousRequest(request1, returningResponse: response, error:nil)!
var err: NSError
println("response -- \(response)")
var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(dataVal, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary
println("Synchronous \(jsonResult)")
在这里有谁可以帮助我使用此代码获取HTTP标头响应或状态代码?请
答案 0 :(得分:10)
试试这个:
func getData(url: NSURL) {
let config: NSURLSessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()
let session: NSURLSession = NSURLSession(configuration: config)
let dataTask: NSURLSessionDataTask = NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: {(data: NSData!, urlResponse: NSURLResponse!, error: NSError!) -> Void in
if let httpUrlResponse = urlResponse as? NSHTTPURLResponse
{
if error {
println("Error Occurred: \(error.localizedDescription)")
} else {
println("\(httpUrlResponse.allHeaderFields)") // Error
}
}
})
dataTask.resume()
}
答案 1 :(得分:1)
根据原始问题中的代码,你试过这个吗?
let urlPath: String = "http://agentreview.net/api/login/?username=asdf&password=asdf"
var url: NSURL = NSURL(string: urlPath)!
var request1: NSURLRequest = NSURLRequest(URL: url)
var response: NSURLResponse? = nil
var error: NSError? = nil
var dataVal: NSData = NSURLConnection.sendSynchronousRequest(request1, returningResponse: &response, error:&error)!
var err: NSError
println("response -- \(response)")
if let response = response as? NSHTTPURLResponse {
if response.statusCode == 200 {
print("Success")
}
}
var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(dataVal, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary
println("Synchronous \(jsonResult)")