У меня есть этот скрипт для Objective C для подключения к серверу:
NSURL *url = [NSURL URLWithString:@"http://localhost/project"]; ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; [request startSynchronous]; NSError *error = [request error]; if (!error) { NSString *response = [request responseString]; NSArray *results = [response componentsSeparatedByString:@", "]; for (NSString* result in results) { NSString * trimmedResult = [result stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; if ([trimmedResult isEqualToString:@"failure"]) NSLog(@"operation %i failed.", i + 1); } }
но теперь мне нужно использовать Свифт. Легче ли подключаться в Objective C и мостике к быстрому или подключиться быстро? Я бы очень хотел просто сделать это быстро.
Я не знаком с вашей сторонней библиотекой, но вы должны иметь то же самое с встроенными методами, поскольку это, кажется, простой синхронный запрос. Попробуй это:
let url = NSURL(string:"http://localhost/project") let request = NSURLRequest(URL:url) var response: NSURLResponse? = nil var error: NSError? = nil let reply = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error) let results = NSString(data:reply, encoding:NSUTF8StringEncoding) // Continue your processing of results here...
Обновление Чтобы использовать POST, используйте NSMutableURLRequest. Общая форма выглядит следующим образом. Трудной для поиска частью является NSURLProtocol.setProperty (…) . См. Эту страницу .
let url = NSURL(string:"http://localhost/project") let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData var request = NSMutableURLRequest(URL: url, cachePolicy: cachePolicy, timeoutInterval: 2.0) request.HTTPMethod = "POST" // set Content-Type in HTTP header let boundaryConstant = "----------V2ymHFg03esomerandomstuffhbqgZCaKO6jy"; let contentType = "multipart/form-data; boundary=" + boundaryConstant NSURLProtocol.setProperty(contentType, forKey: "Content-Type", inRequest: request) // set data var dataString = "your data here" + boundaryConstant let requestBodyData = (dataString as NSString).dataUsingEncoding(NSUTF8StringEncoding) request.HTTPBody = requestBodyData // set content length NSURLProtocol.setProperty(requestBodyData.length, forKey: "Content-Length", inRequest: request) var response: NSURLResponse? = nil var error: NSError? = nil let reply = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:&error) let results = NSString(data:reply, encoding:NSUTF8StringEncoding)