`
折句号
  • 浏览: 11550 次
文章分类
社区版块
存档分类
最新评论

ios json 同步请求和异步请求

 
阅读更多

ios Json获取数据 的同步get请求和异步get请求方法

 json的解析方法有4种 此处使用的是使用IOS自带解析类NSJSONSerialization方法解析:(无需导入包,低于IOS5版本IOS不支持)

 

//加载一个NSURL对象
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://smartbox.gtimg.cn/s3/?q=600&t=all"]];  
//将请求的url数据放到NSData对象中  
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];  
 把得到的数据再进行处理,这是同步的get请求

 同步请求时如果请求到url连接不到或者网速不好等会导致获取不到数据

 

 

 

异步请求需要实现<NSURLConnectionDelegate>代理

 

-(void)data_json  //数据解析
{
   
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://smartbox.gtimg.cn/s3/?q=600&t=all"]];
    NSURLConnection *respose = [[NSURLConnection alloc]initWithRequest:request delegate:self];

}

//异步请求代理方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    self.receiveData = [NSMutableData data];//接收数据,数据不是一下全接收到的所以是可变的data
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{
    //拼接接收到的数据
    [self.receiveData appendData:data];
    
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection

{
    
    //解析
    m_arr_all_stock_codes = [[NSMutableArray alloc]initWithCapacity:0];
    getData =  [[NSString alloc]initWithData:self.receiveData encoding:NSUTF8StringEncoding];
}
 
unicode转化成utf8的方法

 

- (NSString*) replaceUnicode:(NSString*)aUnicodeString //unicode转化成utf8的方法
{
    NSString *tempStr1 = [aUnicodeString stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];
    
    NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
    
    NSString *tempStr3 = [[@"\"" stringByAppendingString:tempStr2] stringByAppendingString:@"\""];
    
    NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];
    
    NSString* returnStr = [NSPropertyListSerialization propertyListFromData:tempData mutabilityOption:NSPropertyListImmutable format:NULL errorDescription:NULL];
    return [returnStr stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@"\n"];
    
}
 

 

分享到:
评论

相关推荐

    网易新闻demo-网络请求

    通过学习"网易新闻demo-网络请求",开发者不仅可以掌握基础的网络请求和JSON解析,还能了解到如何在实际项目中处理数据和UI交互,提升应用的用户体验。同时,这也有助于理解网络请求的最佳实践和错误处理策略,对iOS...

    网络异步下载json

    而异步请求则允许其他代码继续执行,当请求完成时,通过回调或者闭包来处理结果,这样可以确保用户界面的流畅性。 要实现网络异步下载JSON,我们需要使用苹果的Foundation框架中的NSURLSession类。首先,我们需要...

    ios 利用http 向服务器请求数据

    在iOS开发中,与服务器进行数据交互是必不...同步和异步请求的选择取决于应用场景,通常建议在不影响用户体验的情况下尽可能使用异步请求。在实际项目中,还需要考虑错误处理、网络状态监测、缓存策略等更复杂的问题。

    swift-基于AFNetworking封装包括多图片同步异步上传下载错误上报输出请求log等功能

    标题中的"swift-基于AFNetworking封装包括多图片同步异步上传下载错误上报输出请求log等功能"正是这样一个项目,它旨在为Swift开发者提供一个高效、易用的网络请求解决方案。 首先,我们要了解这个封装的主要功能:...

    ios webservice请求

    5. 启动请求,`startSynchronous`或`startAsynchronous`根据需求选择同步或异步。 在描述中提到,这个DEMO可能包含了一个参考他人的代码,这意味着它可能包含了一些基本的错误处理和数据解析。在iOS应用接收到Web ...

    iOS的HTTP请求和请求回执类用法小结

    NSURLSession更现代,支持异步请求,而NSURLConnection更适合简单的同步请求。 总的来说,理解并熟练运用NSURLRequest、NSMutableURLRequest和NSURLResponse是iOS开发中不可或缺的部分,它们使得我们可以构建高效的...

    ios-swift nsurlsession实现并发网络请求.zip

    在`YLNetFramework`中,可能封装了`NSURLSession`的相关功能,提供了更高级别的接口,如异步请求方法,支持参数传递、请求头设置等功能。这使得开发者可以更方便地处理并发网络请求,无需直接操作低级API。 在实际...

    网络请求常用类

    - **AFNetworking (iOS)**:iOS开发中广泛使用的网络请求库,支持HTTP和HTTPS,提供异步请求、上传下载管理等功能。 - **Volley (Android)**:由Google开发的网络请求库,优化了内存管理和请求队列,适合快速响应...

    iOS网络高级编程 iPhone和iPad的企业应用开发完整版

    本书“iOS网络高级编程 iPhone和iPad的企业应用开发完整版”旨在深入探讨如何在iOS平台上实现高效、可靠的网络功能,以满足企业级应用的需求。以下是该书可能涵盖的一些核心知识点: 1. **网络基础**:首先,书中...

    ASIHttpRequest

    在本文中,我们将深入探讨ASIHTTPRequest的核心功能、异步与同步请求的实现,以及如何在项目中集成和使用它。 1. ASIHTTPRequest的核心特性 - 简单的API:ASIHTTPRequest提供了直观的方法来发起GET、POST、PUT、...

    详解iOS通过ASIHTTPRequest提交JSON数据

    在iOS开发中,进行网络请求是一项常见的任务,而提交JSON数据则是现代Web服务交互的主流方式。这篇内容将深入解析如何使用...在实际项目中,你可能需要根据具体需求进行错误处理、异步请求等更复杂的操作。

    iOS网络高级编程 iPhone和iPad的企业应用开发

    开发者可以使用NSURLConnection、NSURLSession以及其对应的异步请求机制来实现网络数据的获取。其中,NSURLSession是iOS 7之后推荐使用的网络请求方式,支持后台下载和上传,具有更好的性能和灵活性。 然后,会深入...

    vue axios同步请求解决方案

    在vue项目里面,需要循环发送ajax请求,出现的问题就是循环结束,第一次服务器还没返回,导致数据处理错误,需要使用同步请求 解决方案 目前没有发现axios可以同步请求,所以只能使用jQuery,配置同步请求; $.ajax...

    网络请求(天气查询Demo)

    `NSURLSession`可以处理HTTP/HTTPS协议,用于发送同步或异步请求到服务器,并接收响应。在天气查询Demo中,我们可能会使用`NSURLSessionDataTask`,这是一个用于处理异步GET请求的对象。 创建网络请求的第一步通常...

    iOS常用开源库列表

    - 使用简单,支持同步和异步请求。 - 支持多种类型的请求,如 GET、POST、HEAD 等。 - 可以设置请求超时时间。 - 支持上传文件和读取文件内容。 #### 二、数据解析:JSON **2.1 JSONKit** - **简介**:JSONKit ...

    swift-一个对AFN网络框架的简单封装具有网络请求过程的日志打印功能

    AFNetworking是iOS开发中的基石之一,它提供了全面的HTTP客户端功能,包括GET、POST、PUT、DELETE等各种HTTP方法,支持异步和同步请求,还包含了上传和下载操作。它的设计模式基于 Blocks 和 NSOperations,使得网络...

    IOS应用源码——网络操作.rar

    `NSURLSession`可以处理HTTP、HTTPS等协议的请求,支持同步和异步操作,以及上传、下载任务。它提供了一个强大的接口,能够方便地进行数据请求、会话管理、请求跟踪和错误处理。 1. **URLSession创建与配置**:在...

    ios开发90个实例源码苹果ios系统项目开发学习资料

    源码可能包含Alamofire、URLSession等库的使用,帮助你理解如何发送HTTP请求,处理JSON数据,实现网络同步和异步操作。 5. **动画与特效**:iOS提供了Core Animation框架,可以创建复杂的视图动画。通过源码,你...

    IOS实现简易天气预报功能适合初学者

    通过这个项目,初学者不仅能学习到Objective-C的基本语法和面向对象编程概念,还能掌握网络请求和JSON解析的实际运用,同时对iOS应用的生命周期和事件处理有更深入的理解。实践中不断积累经验,逐步提升iOS开发技能...

Global site tag (gtag.js) - Google Analytics