解析Html响应头iPhone
答
查找文档中的以下内容:
NSString componentsSeparatedByString:
NSString componentsSeparatedByCharactersInSet:
-
NSScanner
类
答
如果使用NSURLConnection
用于HTTP调用就可以得到HTTP响应代码和来自NSURLConnectionDelegate
方法的标题如下:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
NSInteger statusCode = [httpResponse statusCode];
NSDictionary* headers = [httpResponse allHeaderFields];
}
答
NSMutableDictionary *n=[[NSMutableDictionary alloc]init];
NSString *[email protected]"asd";
NSString *s=[[[[str componentsSeparatedByString:@"<"] objectAtIndex:1] componentsSeparatedByString:@">"]objectAtIndex:0];
NSArray *a = [s componentsSeparatedByString:@"|"];
[n setObject:[a objectAtIndex:0] forKey:@"status"];
if([a count]>1)
{
[n setObject:[a objectAtIndex:1] forKey:@"session"];
NSArray *b = [[a objectAtIndex:2] componentsSeparatedByString:@"&"];
for(int i=0;i<[b count];i++)
{
NSArray *arr = [[b objectAtIndex:i ] componentsSeparatedByCharactersInSet:[ NSCharacterSet characterSetWithCharactersInString:@",="]];
NSMutableIndexSet *eset=[[NSMutableIndexSet alloc]init];
NSMutableIndexSet *oset=[[NSMutableIndexSet alloc]init];
for(int j=0;j<[arr count];j=j+2)
{
[eset addIndex:j];
[oset addIndex:j+1];
}
NSArray *names = [arr objectsAtIndexes: eset];
NSArray *values = [arr objectsAtIndexes: oset];
NSDictionary * dict = [NSDictionary dictionaryWithObjects:values forKeys:names];
[n setObject:dict forKey:[dict objectForKey:@"DisplayName"]];
}
NSLog(@"%@",n);
}
答
节省以下响应作为sample.json文件
{
"Category": [
{
"name": "Mobile"
},
{
"name": "TV"
},
{
"name": "Computer"
},
{
"name": "Camera"
},
{
"name": "Home Appilances"
}
]
}
NSError *error = nil;
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"json"];
NSData *myData = [NSData dataWithContentsOfFile:filePath];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:myData options:kNilOptions error:&error];
NSArray *catArray = [dict objectForKey:@"Category"];
for (int index = 0; index < catArray.count; index++) {
NSDictionary *valDic = [catArray objectAtIndex:index];
NSLog(@"%@", [valDic objectForKey:@"name"]);
}
HTML响应或HTTP repsonse? – kennytm 2010-01-20 07:11:24