Ios HTTP POST函数
我正在尝试使用POST函数从标签中提取文本并将其作为电子邮件发送。问题是,每当我尝试使用标签上的文本时,电子邮件中唯一的数据就是Ios HTTP POST函数,ios,swift,http-post,Ios,Swift,Http Post,我正在尝试使用POST函数从标签中提取文本并将其作为电子邮件发送。问题是,每当我尝试使用标签上的文本时,电子邮件中唯一的数据就是[] 有什么想法可能是错的吗 代码: 编辑: 使用此代码,我现在在电子邮件中获得{“”}: func postToServerFunction() { var emailText = labelText var url: NSURL = NSURL(string: "http:www.webaddress.com/email_test.php")!
[]
有什么想法可能是错的吗
代码:
编辑:
使用此代码,我现在在电子邮件中获得{“”}:
func postToServerFunction() {
var emailText = labelText
var url: NSURL = NSURL(string: "http:www.webaddress.com/email_test.php")!
var request:NSMutableURLRequest = NSMutableURLRequest(URL:url)
var bodyData = "\(emailText)"
request.HTTPMethod = "POST"
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding);
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
{
(response, data, error) in
println(response)
}
}
iOS9中不推荐使用此API。可能最简单的方法是使用Alamofire() 如果您仍然希望使用此API,那么应该使用“数据”对象
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
{
(response, data, error) in
let strData = String(data, NSUTF8StringEncoding)
print(strData)
}
因此,通过这种方式,您可以从返回的NSData启动字符串实例。请不要使用
NSURLConnection
,正如其他人所指出的,它已被弃用。如果您不想依赖外部库(Alamofire),请使用NSURLSession
guard let url = NSURL(string: "http://www.webaddress.com/email_test.php") else {
print("bad url")
return
}
let session = NSURLSession(configuration: NSURLSessionConfiguration.ephemeralSessionConfiguration())
let request = NSMutableURLRequest(URL:url)
request.HTTPMethod = "POST"
request.HTTPBody = "Some Text".dataUsingEncoding(NSUTF8StringEncoding);
let post = session.dataTaskWithRequest(request) { data, response, error in
guard let data = data, let response = response where error == nil else {
print("Connection error")
return
}
let strData = String(data, NSUTF8StringEncoding)
print(strData)
}
post.resume()
“数据”可能包含对请求的响应数据。可能通过转换为stringI来检查,我对swift很陌生,你能告诉我怎么做吗?对于
guard
是的,但是如果swift 1.x中的let something=…对于延迟响应,你也可以使用条件绑定。我尝试了您的代码,但在电子邮件正文中仍然只能有[]。你能想出什么解决办法吗@TMPZ您是否检查了响应值?你得到的数据是什么?您的电子邮件测试似乎有问题。phpI在运行它时返回了(,4)
。我在let response=response
上也遇到了一个错误。特别是该片段中的第一个响应。你知道是什么原因导致的吗?很难说,你犯了什么样的错误?同时打印数据和response.statusCode
guard let url = NSURL(string: "http://www.webaddress.com/email_test.php") else {
print("bad url")
return
}
let session = NSURLSession(configuration: NSURLSessionConfiguration.ephemeralSessionConfiguration())
let request = NSMutableURLRequest(URL:url)
request.HTTPMethod = "POST"
request.HTTPBody = "Some Text".dataUsingEncoding(NSUTF8StringEncoding);
let post = session.dataTaskWithRequest(request) { data, response, error in
guard let data = data, let response = response where error == nil else {
print("Connection error")
return
}
let strData = String(data, NSUTF8StringEncoding)
print(strData)
}
post.resume()