在Swift中执行POST请求

Jak*_*son 16 post nsurlconnection ios swift

我想做这样的事情:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]];

request.HTTPMethod = @"POST";

NSString *stringData = @"some data";
NSData *requestBodyData = [stringData dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPBody = requestBodyData;

NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止:

var url = NSURL(string: "some url")
var request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"

var dataString = "some data"
var requestBodyData: NSData = dataString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) as NSData

request.HTTPBody = requestBodyData

var connection = NSURLConnection(request: request, delegate: self, startImmediately: false)

println("sending request...")

connection.start()
Run Code Online (Sandbox Code Playgroud)

但是,var requestBodyData:行抛出第一块石头"无法将表达式的NSData类型转换为类型NSData"

有人在乎称重吗?

Ren*_*ers 10

stringByAddingPercentEscapesUsingEncoding返回一个字符串而不是NSData对象.根据这个答案,您需要使用它来转换为NSData实例:

let data = (anySwiftString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)