0

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

我一直在寻找答案。我尝试了许多不同的示例代码块。除非产生错误,否则 print 语句永远不会触发。例如:如果我只将 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()
}

编辑:如果我使用操场,它会起作用,但仅限于操场。

4

2 回答 2

0

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

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

在此处输入图像描述

注意:我建议不要在您的生产构建中使用上述设置,这可能会导致安全问题。

于 2015-11-30T18:06:50.110 回答
0

对此没有很好的解释,但是最终将相同的问题代码粘贴到我的主要项目中,现在它可以正常工作了。有什么变化???啊啊啊!浪费了多少小时,我仍然不知道为什么它不能在我的主要应用程序之外工作。谢谢大家的帮助。

最终代码:

我确实希望我可以通过发布请求发送超过 100MB 的数据,以便在服务器端进行解释并存储到数据库中。以前没有这样做过。我是新手。

func post()
{
    let request = NSMutableURLRequest(URL: NSURL(string: "http://bruceexpress.com/database.php")!)
    request.HTTPMethod = "POST"
    request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(stores, options: [])
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")

    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()
}

编辑:是的,您可以发布大量数据。这是正确的方法吗?(请原谅我的愚蠢问题,但我正在恢复 2001 年遗留下来的编程技能。我是一个非常过时的人。)

基本上,我所做的是阅读http://www.thebeerstore.ca上的所有数据,提取每一种啤酒及其信息和价格,并提取每家商店及其信息。我解释了这些数据,将其转换为一个大的 JSON 块,并将其发送到我的服务器,由一个 php 脚本解释,该脚本会将这些数据存储到数据库中。

听起来是正确的做法,还是有更好的方法来填充数据库?

于 2015-12-01T00:43:46.933 回答