Swift / iOS8顺序HTTP请求

克里斯

我不久前写了一些代码,使用用户输入的凭据登录到一个网站,然后导航到某个页面以解析那里的信息(使用NSURLConnectionDelegate)。

func startConnection() {
    var url = NSURL(string:"https://www.website.com/psp/ps/?cmd=login&languageCd=ENG")
    var request = NSMutableURLRequest(URL: url!)
    request.HTTPMethod = "POST"

    let data = (dataString as NSString).dataUsingEncoding(NSUTF8StringEncoding)

    request.HTTPBody = data

    request.setValue("\(data!.length)", forHTTPHeaderField: "Content-Length")
    request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
    request.setValue("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", forHTTPHeaderField: "Accept")

    connection1 = NSURLConnection(request: request, delegate: self, startImmediately: false)!

    connection1.start()
}

func connectionDidFinishLoading(connection: NSURLConnection) {

    if (connection == connection1) {
        let url = NSURL(string: "https://www.nexturl.com")
        var request = NSMutableURLRequest(URL: url!)
        connection2 = NSURLConnection(request: request, delegate: self, startImmediately: false)!
        connection2.start()

    }

    if (connection == connection2) {

        let url = NSURL(string: "https://www.nexturl.com")
        var request = NSMutableURLRequest(URL: url!)
        connection3 = NSURLConnection(request: request, delegate: self, startImmediately: false)!
        connection3.start()
    }

    if (connection == connection3) {
        let strData: NSString = NSString(data: responseData, encoding: NSUTF8StringEncoding)!
        parse(strData)


    }

}

通常的想法是触发初始请求,然后从委托方法发出其他请求connectionDidFinishLoading有没有更干净/更好的方法来进行这种顺序调用?

克里斯

因此,我使用Alamofire框架(AFNetworking的新版本)进行了此操作:

    var loginRequest = NSMutableURLRequest(URL: NSURL(string:"login.com")!)
    loginRequest.HTTPMethod = "POST"

    loginRequest.HTTPBody = ("timezoneOffset=-600&userid1=\(username)&userid=\(username.capitalizedString)&pwd=\(pass)&x=31&y=12" as NSString).dataUsingEncoding(NSUTF8StringEncoding)

    let manager = Alamofire.Manager.sharedInstance

    // Chain requests
    manager.request(loginRequest)
        .responseString{ (request, response, string, error) in
            if response!.statusCode == 500 {
                return Error.InternalServerError
            }
            else {

            manager.request(.GET, "www.redirect.com")
                .responseString { (request, response, string, error) in
                    println(string)
            }
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS8 Swift:deleteRowsAtIndexPaths崩溃

来自分类Dev

Access textfield of UIAlertController - swift ios8

来自分类Dev

MBProgressBarHUD不随Swift和iOS8出现

来自分类Dev

Swift中的iOS8尾随闭包

来自分类Dev

Swift UIAlertController-> ActionSheet iPad iOS8崩溃

来自分类Dev

Swift / iOS8:为websocket SocketIOCocoa创建共享实例

来自分类Dev

在iOS8 Swift中更改UINavigationBar标题

来自分类Dev

访问UIAlertController的文本字段-Swift iOS8

来自分类Dev

使用Swift和iOS8调用和控制振动

来自分类Dev

iOS8 + Swift:创建真正的单例类

来自分类Dev

ios8 w / swift仅iPad UX / UI设计

来自分类Dev

iOS8 Swift UISearchController隐藏导航栏

来自分类Dev

iOS8 Swift TabBarController更改图标颜色

来自分类Dev

xcode,ios8,swift,文件和数组

来自分类Dev

iOS Swift 停止重复的 HTTP 请求

来自分类Dev

Swift Combine HTTP请求

来自分类Dev

Swift(iOS)-HTTP GET请求未填充PickerView

来自分类Dev

企业发行版在Swift App中无法与iOS8配合使用

来自分类Dev

我对Simulator中的Swift(iOS8)中的MFMailComposeViewController有真正的误解

来自分类Dev

如何在Swift iOS8中正确获取字符串的宽度?

来自分类Dev

隐藏导航栏时隐藏状态栏-SWIFT iOS8

来自分类Dev

如何为UIView下的MapView启用触摸事件(iOS8 / Swift)

来自分类Dev

我对Simulator中的Swift(iOS8)中的MFMailComposeViewController有真正的误解

来自分类Dev

在iOS8中使用Swift轻触时如何隐藏/显示tabBar

来自分类Dev

Swift / iOS8:在Segue之前为下一个View Controller设置imageView

来自分类Dev

如何在Swift iOS8中正确获取字符串的宽度?

来自分类Dev

APPDelegate中的openURL转换错误NSString-> String(Swift和iOS8)

来自分类Dev

从EKEventStore获取事件并在Swift iOS8的tableView中显示

来自分类Dev

在滚动视图内部重用视图控制器。Swift iOS8开发

Related 相关文章

  1. 1

    iOS8 Swift:deleteRowsAtIndexPaths崩溃

  2. 2

    Access textfield of UIAlertController - swift ios8

  3. 3

    MBProgressBarHUD不随Swift和iOS8出现

  4. 4

    Swift中的iOS8尾随闭包

  5. 5

    Swift UIAlertController-> ActionSheet iPad iOS8崩溃

  6. 6

    Swift / iOS8:为websocket SocketIOCocoa创建共享实例

  7. 7

    在iOS8 Swift中更改UINavigationBar标题

  8. 8

    访问UIAlertController的文本字段-Swift iOS8

  9. 9

    使用Swift和iOS8调用和控制振动

  10. 10

    iOS8 + Swift:创建真正的单例类

  11. 11

    ios8 w / swift仅iPad UX / UI设计

  12. 12

    iOS8 Swift UISearchController隐藏导航栏

  13. 13

    iOS8 Swift TabBarController更改图标颜色

  14. 14

    xcode,ios8,swift,文件和数组

  15. 15

    iOS Swift 停止重复的 HTTP 请求

  16. 16

    Swift Combine HTTP请求

  17. 17

    Swift(iOS)-HTTP GET请求未填充PickerView

  18. 18

    企业发行版在Swift App中无法与iOS8配合使用

  19. 19

    我对Simulator中的Swift(iOS8)中的MFMailComposeViewController有真正的误解

  20. 20

    如何在Swift iOS8中正确获取字符串的宽度?

  21. 21

    隐藏导航栏时隐藏状态栏-SWIFT iOS8

  22. 22

    如何为UIView下的MapView启用触摸事件(iOS8 / Swift)

  23. 23

    我对Simulator中的Swift(iOS8)中的MFMailComposeViewController有真正的误解

  24. 24

    在iOS8中使用Swift轻触时如何隐藏/显示tabBar

  25. 25

    Swift / iOS8:在Segue之前为下一个View Controller设置imageView

  26. 26

    如何在Swift iOS8中正确获取字符串的宽度?

  27. 27

    APPDelegate中的openURL转换错误NSString-> String(Swift和iOS8)

  28. 28

    从EKEventStore获取事件并在Swift iOS8的tableView中显示

  29. 29

    在滚动视图内部重用视图控制器。Swift iOS8开发

热门标签

归档