【发布时间】:2016-04-15 11:04:12
【问题描述】:
我正在尝试使用 POST 从 PHP 页面获取简单的文本响应。我有以下代码:
func post(url: String, info: String) -> String {
var URL: NSURL = NSURL(string: url)!
var request:NSMutableURLRequest = NSMutableURLRequest(URL:URL)
var output = "Nothing Returned";
request.HTTPMethod = "POST";
var bodyData = info;
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding);
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()){
response, data, error in
output = (NSString(data: data, encoding: NSUTF8StringEncoding))!
}
return output
}
虽然此代码不会引发任何错误,但当我这样调用它时:
println(post(url, info: data))
即使我要换行,它也只会打印:“Nothing Returned”:
output = (NSString(data: data, encoding: NSUTF8StringEncoding))!
到这里:
println((NSString(data: data, encoding: NSUTF8StringEncoding)))
它会打印出正确的响应。我在这里的变量做错了吗?
【问题讨论】:
-
sendAsynchronousRequest 是一个异步请求,因此您不会在块之后立即获得输出的值。你需要实现一个回调机制来处理它。
标签: ios post asynchronous swift nsurlconnection