Tag: http

我是否需要在dispatch_async中包装我的Alamofire调用?

func authenticate(completion:(success: Bool) -> Void) { let qos = Int(QOS_CLASS_USER_INITIATED.value) dispatch_async(dispatch_get_global_queue(qos, 0)){ () -> Void in Alamofire.request(.POST, CONSTANTS.Domain+"/accounts", parameters: ["" : ""]).responseJSON { (req, res, json, error) in dispatch_async(dispatch_get_main_queue()){ completion(success: true) } } } } 或者,我可以忽略调度并保持简单的代码吗?

处理与NSURLSession的HTTP错误?

我试图发送一个HTTP请求与NSURLSession 。 它工作正常,但是当服务器没有响应我找不到HTTP错误代码的存储位置。 completionHandler的第三个参数只是一个非常通用的NSError 。 我读了NSURLResponse的参考,但什么都没发现。 NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:[self postRequestWithURLString:apiEntry parameters:parameters] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { if(!error) NSLog([[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); } ]; [dataTask resume];

使用Swift 3将参数和数据发送到Web服务器

我想弄清楚如何从iPhone发送照片到我的networking服务器。 我还需要发送包含照片大小的参数,文件名以及与参数数据相同请求的其他附加信息。 下面的代码是在我想的正确的轨道上,但我在哪里把参数数据称为params : let params: Array<String> = [aI.filename, String(aI.size), String(aI.dateTime.year), String(aI.dateTime.month), String(aI.dateTime.day), String(aI.dateTime.hour), String(aI.dateTime.minute), String(aI.dateTime.second), String(aI.dateTime.millisecond)] var serverURL = URL(string: "http://192.168.0.23/upload.php"); var req = NSMutableURLRequest(url: serverURL!, cachePolicy: NSURLRequest.CachePolicy.useProtocolCachePolicy, timeoutInterval: 60.0); //Set request to post req.httpMethod = "POST"; //Set content type req.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type"); let task = URLSession.sharedSession().dataTaskWithRequest(req){ data, response, error in if error != […]

如何下载一个网页的内部资源,如图像,在iOS的CSS?

我试图下载指定的网页与他们的内部页面资源到磁盘。 当我发送一个NSURLRequest,只有最初的URL将是请求,但资源作为图像,CSS,JS不会被下载。 有人build议使用caching,但我不想caching在uiwebview浏览的每个网页,但只有我指定的网页。例如,当我input一个url到uiwebview地址栏然后点击“保存”button,该页面将被保存完整,但在web视图中的其他浏览将不会被自动caching。 有没有办法下载整个网页? 非常感谢你!

上传图像到服务器与iOS不工作

我试图上传一个图像到我的PHP服务器,但它不工作。 当我尝试上传文件时,屏幕会冻结(这是预期的 – 我使用sendSynchronousRequest,直到我可以得到这个工作)大约一分钟,然后返回一个空string作为响应。 我一直在这个工作了一天,似乎无法得到它的工作。 此外,图像从未真正上传到服务器(我检查)。 提前致谢! // Uploading the image -(IBAction)uploadImage:(id)sender{ [self uploadImage:UIImageJPEGRepresentation(productImageView.image, 90) filename:@"image.jpg"]; } – (BOOL)uploadImage:(NSData *)imageData filename:(NSString *)filename{ // This isn't actually my url btw NSString *urlString = @"http://www.mysite.com/uploadImage.php"; // setting up the request object now NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; /* add some header […]

如何在SWIFT 3中将HTTPS代理添加到NSURLSession

我已经使用下面的代码连接到代理服务器,仅适用于HTTP请求,但不适用于HTTPS。 在iOS 9.0中, kCFStreamPropertyHTTPSProxyHost和kCFStreamPropertyHTTPSProxyPort被折旧。 let myPortInt = 12345; let myProxyUrlString = "myProxyURL"; let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration(); sessionConfiguration.connectionProxyDictionary = [ kCFNetworkProxiesHTTPEnable: true, kCFNetworkProxiesHTTPPort: myPortInt, kCFNetworkProxiesHTTPProxy: myProxyUrlString, ] let url = NSURL(string: endPointUrl) let postRequest = NSMutableURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 10.0) let jsonString = bodyString postRequest.HTTPBody = jsonString postRequest.HTTPMethod = "POST" postRequest.setValue("application/json", forHTTPHeaderField: "Content-Type") let session […]

iOSmultithreading – NSURLSession和UI更新

我在iOS有一个关于multithreading的一般问题: 在我非常简单的testing应用程序中,我使用NSURLSession从服务器下载一些小图像并将它们呈现在表格视图中。 在NSURLSession的callback中,在检索图像之后,我调用tableview.reloadData(),如下所示: var session = NSURLSession.sharedSession().dataTaskWithURL(NSURL(url)) {(data, response, error) -> Void in /* Process images here */ self.tableView.reloadData() } session.resume() 图像几乎是即时下载,但需要10-20秒才能更新表格视图! 要清楚的是,更新代表甚至没有被调用 10-20秒。 但是,如果我将reloadData()放在主线程上,它会很快更新。 像这样: var session = NSURLSession.sharedSession().dataTaskWithURL(NSURL(url)) {(data, response, error) -> Void in /* Process images here */ dispatch_async(dispatch_get_main_queue()) { self.tableView.reloadData() } } session.resume() 所以,我的问题解决了,我可以再睡一会了。 但有人可以向我解释为什么是这样吗? 我知道UI更新应该在主线程中执行 – 那么为什么第一个案例实际上仍然可以工作,但是还是需要FOREVER来完成呢? 应用程序中没有任何其他的事情,所以我甚至不能开始思考什么可能会阻止整个20秒重新加载。 它是否等待NSURLSession首先完全closures,或者沿着这些线? 寻找大素数? […]

iOS中大量的Base64上传

说明:我需要在HTTP POST参数中发送一个base 64编码的string,表示要上传的文件。 当前的方法:我正在使用一个ASIFormDataRequest并将我的文件编码到一个base64string,如下所示: NSData *data = [[NSFileManager defaultManager] contentsAtPath:@"my path here"]; NSString *base64Data = [data encodeBase64ForData]; 然而,当上传大文件的应用程序耗尽内存,并死亡一个可怕的死亡! build议的解决scheme:现在有谁可以从磁盘读取文件,将其转换为base64string,并将转换后的base64string附加到HTTP请求中的参数? 有效避免将整个文件读入内存的方式。 任何投入将不胜感激! 我的http请求代码全部: NSURL *url = [NSURL URLWithString:requestProgressURLString]; NSData *data = [[NSFileManager defaultManager] contentsAtPath:evidence.uri]; NSString *base64Data = [data encodeBase64ForData]; NSURL *fileURL = [[NSURL alloc] initWithString:evidence.uri]; request = [ASIFormDataRequest requestWithURL:url]; request.shouldAttemptPersistentConnection = false; [request setShowAccurateProgress:YES]; [request setPostValue:accessToken […]

Accept-Encoding:iOS上的gzip

Q1使用iOS App Kit,我可以期待Accept-Encoding: gzip会自动使用吗,还是需要在URL请求中设置这个地址来明确地要求使用它? 我目前正在使用调用[NSData dataWithContentsOfURL: url] ,虽然我很可能会改为专门设置NSURLSession – 这是否可能会自动请求gzip编码? Q2另外,如果使用它并且服务器使用gzip-ed内容,则我是否正确,客户端会自动解码压缩的内容,以便我不需要?

不受支持的urliOS

我有一个有效的url,我得到 – 不受支持的url错误。 可以告诉我为什么? 正如你可以看到有http:// // http://fr.radiovaticana.va/news/2015/02/01/le_pape_fran%C3%A7ois_%C3%A0_sarajevo_le_6_juin_prochain/1121065 Error description=Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo=0x78f97920 {NSUnderlyingError=0x79f78bd0 "unsupported URL", NSLocalizedDescription=unsupported URL} 这是我试图初始化url: 方法1: NSString *path=@"http://fr.radiovaticana.va/news/2015/02/01/le_pape_françois_à_sarajevo_le_6_juin_prochain/1121065"; NSURL *url=[NSURL URLWithString:path]; NSMutableURLRequest * request =[NSMutableURLRequest requestWithURL:url]; 方法2: NSMutableURLRequest * request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://fr.radiovaticana.va/news/2015/02/01/le_pape_françois_à_sarajevo_le_6_juin_prochain/1121065"]];