2014-12-05 68 views
0

我用在雨燕下面的函数连接到一个PHP脚本的服务器上,然后再处理我的请求服务器响应GET HTTP代码:斯威夫特:从

func pushtoserveronclick() { 
    var URL: NSURL = NSURL(string: "http://someurl.com/")! 
    var request:NSMutableURLRequest = NSMutableURLRequest(URL:URL) 
    request.HTTPMethod = "POST" 
    var bodyData = "data=something&version=\(appVersion)" 
    request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding); 
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) 
     { 
      (response, data, error) in      
      println(response)     
    } 
} 

当我运行应用程序,我得到这个作为响应返回:

<NSHTTPURLResponse: 0x14e53170> { URL: http://someurl.com/ } { status code: 200, headers { 
Connection = "Keep-Alive"; 
"Content-Type" = "text/html"; 
Date = "Fri, 05 Dec 2014 06:23:23 GMT"; 
"Keep-Alive" = "timeout=2, max=100"; 
Server = Apache; 
"Transfer-Encoding" = Identity; 

我怎么会得到状态代码正在被退回,所以我可以对它进行检查,并告诉它是否是一个连接问题?

+0

response.statusCode – mattt 2014-12-05 08:28:37

+0

@mattt已经试过了。我得到'NSURLResponse'没有名为'statusCode'的成员 – DannieCoderBoi 2014-12-05 12:01:21

+0

首先将它转换为“NSHTTPURLResponse”。 '[(NSHTTPURLResponse *)response statusCode]' – mattt 2014-12-05 19:14:09

回答

2

NSURLConnection.sendAsynchronousRequest在类型签名使用NSURLResponse,但只要你是通过HTTP连接的,实例(通常)NSHTTPURLResponse,它具有statusCode

您可以检查并投它是这样的:

if let HTTPResponse = response as? NSHTTPURLResponse { 
    let statusCode = HTTPResponse.statusCode 
}