如何执行没有/需要响应主体的URLRequest?

时间:2019-04-15 14:44:35

标签: swift nsurlrequest

主题说明了一切。我们要创建一个URLRequest,我们所关心的就是可以从httpUrlResponse对象获得的HTTP返回码(例如200、400等)。我们不需要响应主体,因为没有响应主体。

这是您发出要求响应主体的请求的方式...

let urlRequest = [insert code to make request]
let urlSession = [insert code to make session]

let task = urlSession.dataTask(with: urlRequest) {

    (responseBodyData, httpUrlResponse, error) in

    if let error = error {
        // handle error
        return
    }

    guard let responseBodyData = responseBodyData else {
        // Handle missing data
        return
    }
}

task.resume()

但是,如果您不想/不需要responseBodyData,该怎么办?还是只使用相同的代码,而忽略responseBodyData字段,而将其替换为_,因为它是可选的并且可以忽略?

1 个答案:

答案 0 :(得分:0)

根据您的评论:

  

我想知道的是这是否正确。换句话说,还有其他没有该参数的东西吗?是其他的闭包签名还是其他东西。

不。闭包签名是预定义的:必须带有三个参数。名称无关紧要,但数字无关紧要

let task = urlSession.dataTask(with: urlRequest) {(body, response, err) in

如果您想忽略第一个参数,请忽略它(即不要在花括号中再次引用它)。您可以根据需要替换下划线,以向自己发出信号,表示您不在乎第一个参数:

let task = urlSession.dataTask(with: urlRequest) {(_, response, err) in

但是不要求您这样做;编译器不在乎一种方法。