异步请求没有数据返回
2013-01-10 13:28
113 查看
dispatch_queue_t network;
network =dispatch_queue_create("com.moveshop.network", nil);
dispatch_async(network, ^
{
// 耗时操作,请求我的常用
NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSURL *url = [NSURL URLWithString:@"http://www.shoujifeng.net/shop/adr/api.php?"];
asiRequest = [[ASIFormDataRequest alloc] initWithURL:url];
[asiRequest setRequestMethod:@"POST"];
//htp://huazuimao8.seeisp.cn/adr/api.php?iic=demo&id=1&comm_type=product_list&size=2&page=2
// 打包参数转换称UTF-8格式上传给服务器
NSMutableDictionary* reqDict = [NSMutableDictionary dictionary];
[reqDict setObject:@"cat" forKey:@"comm_type"];
[reqDict setObject:@"0" forKey:@"category"];
NSString* reqString = [NSString stringWithString:[reqDict JSONRepresentation]];
//Request
NSData* requestData = [NSData dataWithBytes:[reqString UTF8String] length:[reqString length]];
//[asiRequest addPostValue:@"promotion_product" forKey:@"comm_type"];
[asiRequest appendPostData:requestData];
[asiRequest buildPostBody];
[asiRequest setDelegate:self];
[asiRequest startSynchronous];
// 服务器返回GBK编码的数据
NSData *responseData = [asiRequest responseData]; //检查是否为空,不为空有数据返回
//询问服务器返回的数据编码是何种类型,如果弄错,returnString 的值为空
NSString* returnString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"------%@",returnString);
NSData *jsonData = [returnString dataUsingEncoding : NSUTF8StringEncoding];
NSError *error = nil ;
NSDictionary *resultDic = [ [ CJSONDeserializer deserializer ] deserializeAsDictionary : jsonData error : &error ];
//
dispatch_async(dispatch_get_main_queue(), ^{
//隐藏等待提示
[self hiddenProgress];
if ([[resultDic objectForKey:@"code"] intValue]==1) {
dataArray = [[resultDic objectForKey:@"data"] copy];
}else {
// [UIHelp showHint:[resultDic objectForKey:@"msg"] intView:self.view];
}
// [classTableView reloadData];
});
});
network =dispatch_queue_create("com.moveshop.network", nil);
dispatch_async(network, ^
{
// 耗时操作,请求我的常用
NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSURL *url = [NSURL URLWithString:@"http://www.shoujifeng.net/shop/adr/api.php?"];
asiRequest = [[ASIFormDataRequest alloc] initWithURL:url];
[asiRequest setRequestMethod:@"POST"];
//htp://huazuimao8.seeisp.cn/adr/api.php?iic=demo&id=1&comm_type=product_list&size=2&page=2
// 打包参数转换称UTF-8格式上传给服务器
NSMutableDictionary* reqDict = [NSMutableDictionary dictionary];
[reqDict setObject:@"cat" forKey:@"comm_type"];
[reqDict setObject:@"0" forKey:@"category"];
NSString* reqString = [NSString stringWithString:[reqDict JSONRepresentation]];
//Request
NSData* requestData = [NSData dataWithBytes:[reqString UTF8String] length:[reqString length]];
//[asiRequest addPostValue:@"promotion_product" forKey:@"comm_type"];
[asiRequest appendPostData:requestData];
[asiRequest buildPostBody];
[asiRequest setDelegate:self];
[asiRequest startSynchronous];
// 服务器返回GBK编码的数据
NSData *responseData = [asiRequest responseData]; //检查是否为空,不为空有数据返回
//询问服务器返回的数据编码是何种类型,如果弄错,returnString 的值为空
NSString* returnString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"------%@",returnString);
NSData *jsonData = [returnString dataUsingEncoding : NSUTF8StringEncoding];
NSError *error = nil ;
NSDictionary *resultDic = [ [ CJSONDeserializer deserializer ] deserializeAsDictionary : jsonData error : &error ];
//
dispatch_async(dispatch_get_main_queue(), ^{
//隐藏等待提示
[self hiddenProgress];
if ([[resultDic objectForKey:@"code"] intValue]==1) {
dataArray = [[resultDic objectForKey:@"data"] copy];
}else {
// [UIHelp showHint:[resultDic objectForKey:@"msg"] intView:self.view];
}
// [classTableView reloadData];
});
});
相关文章推荐
- ajax请求返回的数据看不到回调函数没有执行也没报错
- Springmvc中 同步/异步请求参数的传递以及数据的返回
- 使用getJSON()异步请求服务器返回json格式数据
- Android请求网络数据在部分手机上出现没有数据返回的情况
- jQuery在异步请求数据返回后,调用$("selector").html(data.content);之后因为一些特殊字符或者',"不能显示内容的问题解决办法
- jquery的ajax异步请求接收返回json数据实例
- 实现iOS中发起异步网络请求,需要等待其返回的数据才能执行下一步操作
- 使用JQuery.js & JQuery.form.js 插件完成对StrutsAction的异步请求,返回JSON数据
- iOS 信号量解决-网络异步请求的数据同步返回问题
- ajax请求,返回的数据不看不到,回调函数没有执行
- 循环里面嵌套一个异步请求,所有循环执行完毕后再返回请求的数据
- Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
- 循环请求数据时,返回的结果没有按照顺序显示的解决方法
- Springmvc中 同步/异步请求参数的传递以及数据的返回
- springmvc中同步/异步请求参数的传递以及数据的返回
- ext异步请求一个aspx/ashx/web service取得数据,服务端返回一个json.然后客户端接收并显示.
- jquery的ajax异步请求接收返回json数据
- ajax请求返回的数据看不到回调函数没有执行也没报错
- Jquery Ajax学习实例5-向WebService发出请求,返回泛型集合数据的异步调用
- .net 饼状图,,, ajax异步请求数据 返回xml格式的数据