为什么没有打印任何结果?
我一直在寻找答案。我尝试了很多不同的代码示例块。除非产生错误,否则打印语句永远不会触发。例如:如果我将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()
}
编辑:如果我使用游乐场,但只能在操场上使用它。
答案 0 :(得分:0)
在您的应用程序的Info.plist文件中,添加属性App Transport Security Settings
,然后添加Allow Arbitrary Loads
并为其指定YES
。
通过Info.plist中的上述设置,该应用应该还可以加载您的http://
网址
注意:我建议您不要使用上述设置 生产构建,可能会导致安全问题。
答案 1 :(得分:0)
对此没有很好的解释,但最终将这个相同的问题代码粘贴到我的主项目中,它现在完全正常。改变了什么??? Arrrrg!浪费了多少小时,我仍然不知道为什么它不能在我的主要应用程序之外工作。感谢大家的帮助。
最终代码:
我希望我可以发送超过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脚本解释,该脚本将这些数据存储到数据库中。
听起来像是正确的事情,还是有更好的方法来填充数据库?