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

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"];
    
}
 

 

分享到:
评论

相关推荐

    vue axios同步请求解决方案

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

    校园助手iOS端HutHelper-Open.zip

    [MJRefresh - 上拉下拉刷新][YYModel - Json转Model][AFNetworking - 请求异步加载][UMengUShare - 友盟分享][ASIHTTPRequest - 照片同步上传]最后这是本人刚进大二,在湖南工业大学实验室写的一款App,目的主要是为...

    NetClient-iOS:Swift中的多功能HTTP网络

    使用进度上传和下载进度关闭(仅iOS&gt; = 11) cURL命令调试输出 请求和响应拦截器 异步和同步任务执行 响应对象类型的推断 网络可达性 TLS证书和公钥固定 重试请求 兼容可编码/可解码/可编码协议(JSON /属性列表) ...

    Ghost:Swift用Swift编写的通用HTTP网络框架

    自定义缓存控件 自定义内容类型 上传和下载进度关闭 cURL命令调试输出 请求和响应拦截器 响应对象类型的推断 网络可达性 TLS Certificate和Public Key Pinning 重试请求 兼容可Codable协议( JSON / Property List ...

    Fire:Swift使用Swift编写的适用于iOS的令人愉悦的HTTPHTTPS网络框架macOSwatchOStvOS平台

    火是供人类阅读的,顺便说一句,是供机器执行的:)产品特点 可链接的请求/响应方法 上传文件/数据/ MultipartFormData HTTP基本授权 TLS证书和公钥固定 全面的单元和集成测试范围 同步/异步请求 超时时间 自定义缓存...

    HandsomeURLSession:适用于iOS,watchOS,tvOS和macOS的NSURLSession扩展

    NSURLSession的此扩展为您提供了HTTP请求的键入响应,包括异步和同步。 如果发生错误,则引发异常。 支持以下类型的响应: UTF8文字: String JSON: [String:AnyObject] 数据: NSData 图片: UIImage或...

    java开源包1

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包11

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包2

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包3

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包6

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包5

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包10

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包4

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包8

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包7

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包9

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    java开源包101

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    Java资源包01

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

Global site tag (gtag.js) - Google Analytics