【问题标题】:How to solve this issue "Ambiguous reference to member 'dataTask(with:completionHandler:)' " [duplicate]如何解决此问题“对成员'dataTask(with:completionHandler :)'的模糊引用” [重复]
【发布时间】:2018-07-24 19:34:20
【问题描述】:

如何解决这个问题

对成员'dataTask(with:completionHandler:)'的模糊引用

    guard let requestUrl = URL(string:"http://www.digi.com/laravel_api_demo/api/demoapi") else { return }

    let request = NSMutableURLRequest(url: requestUrl)
    request.httpMethod = "POST"

    let postString = "firstName=James&lastName=Bond"
    request.httpBody = postString.data(using: String.Encoding.utf8)
    let task = URLSession.shared.dataTask(with: request){ (data, response, error) in

        if error != nil
        {
            //print(error)
            return
        }

        //You can print out response object
        print("response = \(response)")

        //Print out response body
        let responseString = String(data: data, encoding: NSUTF8StringEncoding)
        print("response data = \(responseString)")

        var err: Error?
        var json = JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? NSDictionary

        if let parseJSON = json {
            var firstNameValue = parseJSON["firstName"] as? String
            print("first name value = \(firstNameValue)")
        }
    }
    task.resume()
}

【问题讨论】:

    标签: ios swift rest post http-headers


    【解决方案1】:

    调用应该是这样的,第一个参数是URL而不是NSMutableURLRequest

      guard let requestUrl = URL(string:"http://www.digi.com/laravel_api_demo/api/demoapi") else { return }
    
        var  request = URLRequest(url: requestUrl)
        request.httpMethod = "POST"
    
        let postString = "firstName=James&lastName=Bond"
        request.httpBody = postString.data(using: String.Encoding.utf8)
        let task = URLSession.shared.dataTask(with: request){ (data, response, error) in
    
            if error != nil
            {
                //print(error)
                return
            }
    
    
        }
        task.resume()
    

    在此处查看可用方法的签名

    【讨论】:

    • 抱歉,这是错误的建议。您的解决方案会忽略 request 变量,因此不会发送 POST 请求。
    • 我同意编辑它
    • 请注意,已经有几个相同的问题有答案。
    猜你喜欢
    • 2018-04-02
    • 2023-03-04
    • 2016-11-04
    • 2023-03-25
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多