解析Html响应标头iPhone

时间:2010-01-20 07:09:01

标签: iphone

我需要解析响应头信息并处理状态代码。我现在得到了html响应字符串,我需要解析如何在iPhone中做什么?

4 个答案:

答案 0 :(得分:0)

在文档中查找以下内容:

  • NSString componentsSeparatedByString:
  • NSString componentsSeparatedByCharactersInSet:
  • NSScanner class

答案 1 :(得分:0)

如果您使用NSURLConnection进行HTTP调用,您可以从NSURLConnectionDelegate方法获取HTTP响应代码和标题,如下所示:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
    NSInteger statusCode = [httpResponse statusCode];
    NSDictionary* headers = [httpResponse allHeaderFields];
}

答案 2 :(得分:0)

NSMutableDictionary *n=[[NSMutableDictionary alloc]init];
    NSString *str=@"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);

    }

答案 3 :(得分:0)

将以下响应保存为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"]);

}