ios - NSURLSession.sharedSession().dataTaskWithRequest(request) 除非出现错误,否则不会返回任何内容

标签 ios swift nsurlsessiondatatask

为什么没有打印任何结果?

我一直在寻找答案。我尝试了许多不同的示例代码块。除非产生错误,否则打印语句永远不会触发。例如:如果我仅将 URL 更改为“http”,而没有其他任何内容,我自然会收到错误并打印该错误。但是,任何有效的 URL 都不会在 print 语句中产生结果。

func post()
{
    let request = NSMutableURLRequest(URL: NSURL(string: "http://www.thebeerstore.ca")!)
    request.HTTPMethod = "POST"
    let postString = "experiment"
    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in
        if error != nil {
            print("error=\(error)")
            return
        }

        print("response = \(response)")

        let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
        print("responseString = \(responseString!)")

    }
    task.resume()
}

编辑:如果我使用 Playground ,它就可以工作,但只能在 Playground 中。

最佳答案

在应用程序的 Info.plist 文件中,添加属性 App Transport Security Settings,并在其下添加 Allow Arbitrary Loads 并分配 YES为了它。

通过 Info.plist 中的上述设置,应用程序应该也能够加载您的 http:// 网址

enter image description here

Note: I would recommend not to use the above settings in your production build, it could result in security issues.

关于ios - NSURLSession.sharedSession().dataTaskWithRequest(request) 除非出现错误,否则不会返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34004425/

相关文章:

ios - var 和 let 定义改变了 swift 和 swift2。 swift 2 中的 var 定义是否发生了变化?

iphone - 仅发送到设备上已释放实例的消息

arrays - 多属性排序 Swift 数组

swift - 类型转换需要解包?

swift - NSURLSession 数据任务响应处理

ios - UIKit 中的 Swift 组合。某些用户的 URLSession dataTaskPublisher NSURLErrorDomain -1

javascript - HTML5 音频播放器在 ios safari 中无法自动播放

ios - 包含两个信息数组的 TableView

ios - 为什么swift5不支持导入文件的类型?

ios - URL 超时的数据任务