Tag: nsurlsession

Swift:parsingJSON字典值

我试图parsingJSON数据。 我能做的是将JSON数据保存为NSData文件。 然后我可以读它作为NSDictionary,并设置一些值到各自的文本字段。 我不能做的是把这些从JSON值直接到各自的文本字段。 数据的来源是打开天气图。 这对我来说并不重要。 我只需要数据来练习JSONparsing。 无论如何,以下是我所拥有的。 @IBOutlet weak var coordField1: UITextField! @IBOutlet weak var countryField1: UITextField! @IBOutlet weak var ideeField1: UITextField! @IBOutlet weak var nameField1: UITextField! @IBOutlet weak var cntField1: UITextField! @IBOutlet weak var codField1: UITextField! override func viewDidLoad() { super.viewDidLoad() enum JSONError: String, ErrorType { case NoData = "ERROR: no data" case […]

为什么NSURLSession比浏览器返回不同的响应呢?

任何想法为什么NSURLSession返回这个响应: 您提供的授权types不受支持。 只支持Basic和OAuth let username = "8r6nibK8Pe28WFhjTX1gGb1Rhhhc7xM02v7XKRPedL4" let password = "8r6nibK8Pe28WFhjTX1gGb1Rhhhc7xM02v7XKRPedL4" let loginString = NSString(format: "%@:%@", username, password) let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)! let base64LoginString = loginData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength) let config = NSURLSessionConfiguration.defaultSessionConfiguration() let authString = "Basic \(base64LoginString)" config.HTTPAdditionalHeaders = ["Authorization" : authString] let url = NSURL(string: "https://api.datamarket.azure.com/Bing/Search/Image?$format=json&Query='Rambo'+'Oscar'") let request = NSMutableURLRequest(URL: url!) request.HTTPMethod = "POST" let […]

暂停,继续,取消上传任务使用NSURLSession UploadTask

我正在开发一个应用程序来使用NSURLSession上传多个文件,现在我的文件成功上传。 但现在我想实现的是暂停,恢复和取消上传,就像我们在下载任务。 可能吗。? 任何帮助,将不胜感激。 日Thnx

使用NSURLSession的HTTP PUT方法

我在iOS 7 SDK中引入的NSURLSession类中挣扎,而且我被困在一个地方,我需要用PUT方法调用REST API 。 我已经实现了GET和POST方法,使用这个工作正常: NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request addValue:@"application/json" forHTTPHeaderField:@"Accept"]; [request setHTTPMethod:httpMethod]; // GET/POST works, PUT does not NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { if (!error){ // do something here ( … ) } else { // process error ( […]

NSURLSessionUploadTask如何读取服务器响应

我正在使用NSURLSessionUploadTask来上传文件。 这里是我的代码的一些部分不完整 let session:NSURLSession = NSURLSession(configuration: config, delegate: self, delegateQueue: NSOperationQueue .mainQueue()) let sessionTask:NSURLSessionUploadTask = session.uploadTaskWithStreamedRequest(request 但问题是我无法获得服务器发回的JSON响应。 下面的代表也没有开火,但其他代表正在开火 func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData) 我正在使用的代码: func sendFileToServer1(fileName:String,fileData:NSData,serverURL:String){ let body = NSMutableData() let mimetype = "application/octet-stream" // let mimetype = "video/quicktime" let boundary = "Boundary-\(NSUUID().UUIDString)" let url = NSURL(string: serverURL) let request = NSMutableURLRequest(URL: […]

在NSURLProtocol中使用NSURLSession

我正在尝试使用NSURLSession为http://和https://连接创build一个透明的NSURLProtocol。 然而,目前,即使正在运行完成处理程序,带有应用程序(UIWebView)的URL请求也回来了。 有人有什么想法吗? 代码如下: #import "MyURLProtocol.h" // AppDelegate #import "AppDelegate.h" static NSString * const MyURLProtocolHandledKey = @"MyURLProtocolHandledKey"; @interface MyURLProtocol () <NSURLConnectionDelegate,NSURLSessionDelegate> @property (nonatomic, strong) NSURLConnection *connection; @property (nonatomic, strong) NSMutableData *mutableData; @property (nonatomic, strong) NSURLResponse *response; @end @implementation MyURLProtocol +(BOOL)canInitWithRequest:(NSURLRequest*)request { if ([NSURLProtocol propertyForKey:MyURLProtocolHandledKey inRequest:request]) return NO; NSString *scheme = request.URL.scheme.lowercaseString; return [scheme isEqualToString:@"http"] || […]

使用NSURLSession使用原始身体发布请求

我在这里卡住了。 下面是我的使用NSURLSession与原始邮政请求的代码。 我得到了响应= NULL,没有错误。 NSString* stringRequest = @"https://chocudan.com/api/shops/by_ids"; NSURL* urlRequest = [NSURL URLWithString:stringRequest]; NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:urlRequest]; request.HTTPMethod = @"POST"; NSString* bodyRequest = @"563c268b84ba489c4729f149"; //I have to tried a base64 convert here but still not work. //request.HTTPBody = [NSData base64DataFromString:bodyRequest]; request.HTTPBody = [bodyRequest dataUsingEncoding:NSUTF8StringEncoding]; NSURLSessionConfiguration* configureSession = [NSURLSessionConfiguration defaultSessionConfiguration]; configureSession.HTTPAdditionalHeaders = @{@"Content-Type" : @"application/json […]

将URL数据保存到variables

所以我试图从RESTful API中获取简单的数据串。 以下是响应的样子: Hello 它没有用XML或JSON格式化,或者只是一个简单的string,因为一次只传递一个单词。 所以这里是我的快速的样子: let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in if error != nil { println("error: \(error.localizedDescription): \(error.userInfo)") } var withNewLine:NSString = NSString(data: data, encoding: NSUTF8StringEncoding)! let str:NSString = withNewLine.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()) dispatch_async(dispatch_get_main_queue(), { self.spellCorrection = str }) }) task.resume() 在进入dispatch_async()方法之前,我在“str”variables中得到正确的数据。 但是,当我进入dispatch_async()方法的“str”variables变成零,我不知道为什么。 我只是试图把这个单词保存在我的类中的一个variables中,所以如果我正在做这个完全错误的让我知道。 我真的很感激任何帮助,我可以得到。 谢谢! 编辑 好的,所以我应该在第一次发布时join这个。 我也试过这个: let […]

将UIImage编码为Base64string时,传输到服务器时不起作用

将UIImage编码为Base64string可在设备上工作,但将string传输到服务器会以某种方式破坏string,并阻止服务器成功解码图像。 关于这个问题的任何build议? // Define params params["thumbnail_base64"] = imageToBase64(blockSet.thumbnailURL) … // Convert params -> query string let postString = buildQueryString(params) // Define upload URL let uploadURL = NSURL(string: RootURL + UploadFilePath)! // Hit server let request = NSMutableURLRequest(URL: uploadURL) request.HTTPMethod = "POST" request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding) … private func buildQueryString(parameters: [String:String], omitQuestionMark: Bool = false) -> String […]

iOS中的背景获取和背景传输可以在bakcground上下载数据(JSON)

我正在将我的一个应用程序升级到iOS 7,并试图尝试新的多任务API。 我打算使用后台提取或无声推送通知来保持我的内容最新。 基本上设置的JSON值。 我通过下载video或图像看到的大多数文档/代码,我有以下问题… 如果我们使用后台抓取或无声推送通知,我们是否需要使用单独的backgroundSessionConfiguration下载数据? 或者我们可以通过利用现有的defaultSessionConfiguration来做到这一点? (因为我可以重用现有的方法,而不是有一个单独的方法进行后台下载)。 是否可以使用后台传输来下载除文件资产以外的大量数据? 正如我所知的背景获取背景只允许约1分钟完成任务,是否有可能在获取内使用后台传输来延长这段时间? (我的意思是,如果我们在后台获取请求中启动了后台传输,应用程序就会执行它并完成作业,或者在应用程序再次唤醒时暂停运行并恢复运行。