使用AGSJSONRequestOperation完成webservice資源的請求

相信大家在做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];
}






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章