Swift Http 客户端不发送请求

标签 swift httprequest

我有这个函数来测试发送HTTP请求。

public func test(url: URL) {
    print("test")
    var request = URLRequest(url: url!)
    request.httpMethod = "GET"
    let session = URLSession.shared
    session.dataTask(with: request) { data, response, err in
        print("Entered the completionHandler")
        guard err == nil else {
            print("error calling GET")
            print(err!)
            return
        }
    }.resume()
}

我在测试中运行代码只是为了确保它正在发送请求。 而且它永远不会进入完成 block (输入了completionHandler从未被打印)。我是 Swift 新手,我错过了什么?

func test_download() {
    myClient.test(url: URL(string:"https://www.google.com")!)
    print("sleeping...")
    sleep(10)
    print("done...")
}

最佳答案

看来您没有正确使用闭包。试试这个:

// No need to explicitly set GET method since this is the default one.
let session = URLSession.shared
var request = URLRequest(url: url!)
session.dataTask(with: request) { (data, response, err) in
    print("Entered the completionHandler")
    guard err == nil else {
        print("error calling GET")
        return
    }
    // Do whatever you need to with data and response in here

}.resume()

关于Swift Http 客户端不发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45380695/

相关文章:

swift - 不止一张带有动态列的动态表 swift 4

ios - Swift 2.0 使用未声明的类型 UIColor

ios - 需要帮助完成我对测试计时器应用程序的状态机的第一次尝试 - 我认为我仍然有转换错误

ios - 在 iOS9 中捕获实时照片的 API

ios - 更改框架后 UIContainerView 停止接收触摸

javascript - 在发送 JavaScript 之前拦截 XHR 并更改请求 header 和 url

cookies - 使用JavaFX的WebEngine/WebView设置cookie

node.js - Alexa API技巧-nodejs get请求未执行

httprequest - yesod PUT 和 DELETE 使用隐藏的 _method 参数

android - 为什么在 Android 中使用框架来发出 Http 请求而不是使用它自己的类来发出这个?