相信大家在做iOS應用時,少不了都會有一些Web資源的請求需求。這時可以考慮網上的第三方庫,比如AFNetworking、ASIHTTPRequest等。但是如果你恰好使用了ArcGIS.Framework,Esri已經給我們提供了一個專門處理類似請求的
Objective-C類——AGSJSONRequestOperation。
AGSJSONRequestOperation的使用流程:
A、要求:安裝了ArcGIS Runtime SDK for iOS
B、使用流程:
聲明
@property (nonatomic,strong) AGSJSONRequestOperation* currentJsonOp;
@property (nonatomic,strong) NSOperationQueue *queue;
初始化
self.queue = [[NSOperationQueuealloc] init];
構造請求參數
NSMutableDictionary* params = [NSMutableDictionary dictionary];
[params setObject:citycode forKey:@"citycode"];
[params setObject:wh forKey:@"queryStr"];
[params setObject:@"json" forKey:@"f"];
NSString *temURL=@"http://st.geoq.cn/geocode/xxxxx/single?";
NSURL *url = [NSURL URLWithString: [temURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
self.currentJsonOp = [[AGSJSONRequestOperation alloc]initWithURL:url queryParameters:params];
self.currentJsonOp.target = self;
self.currentJsonOp.action = @selector(operation:didSucceedWithResponse:);
self.currentJsonOp.errorAction = @selector(operation:didFailWithError:);
[self.queue addOperation:self.currentJsonOp];
處理請求響應
- (void)operation:(NSOperation*)op didSucceedWithResponse:(NSDictionary *)dataInfo { //NSLog(@"%@", dataInfo); }
- (void)operation:(NSOperation*)op didFailWithError:(NSError *)error { UIAlertView* av = [[UIAlertView alloc] initWithTitle:@"Sorry" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [av show]; }