Парсинг NSData из GET-запроса - PullRequest
0 голосов
/ 21 октября 2011

Я сделал NSData из GET-запроса.

NSString *nameID = [[NSString alloc]initWithString: @"1"];        
NSString *urlString = [NSString stringWithFormat:@"http://www.xxxxx.com/news/index.php?id=%@", 
                       [nameID stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

NSURL *url = [[NSURL alloc] initWithString:urlString];

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];

NSData *urlData;
NSURLResponse *response;
urlData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:nil];
NSString *results = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",urlData);

А как потом это разобрать?У меня есть только что-то вроде:

2011-10-21 19:27:06.213 httptest[1674:207] <3c21444f 43545950 45206874 6d6c2050 55424c49 4320222d 2f2f5733 432f2f44 54442058 48544d4c 

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

вы уже преобразовали полученные данные в NSString

сначала вы должны определить, что это за данные: XML- или JSON-String? или бинарный код? а затем вы должны написать свой собственный парсер или выбрать тот, который вам нравится.

Я предполагаю, что ваш результат - xml, и давайте просто предположим, что вы хотите использовать TBXML -Dom-Parser. затем попробуйте:

NSString *results = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding]; 
TBXML * tbxml = [TBXML tbxmlWithXmlString:result];
TBXMLElement *rootElement = tbxml.rootElement;
TBXMLElement *childELement = [TBXML childElementNamed:@"myChildTag" parentElement:rootElement]
..... //depends on how your xml looks like
0 голосов
/ 21 октября 2011

Вы регистрируете urlData (объект NSData) вместо результатов (строка NSString). NSData объекты отображаются в консоли вывода в виде шестнадцатеричных пар. Если вы зарегистрируете «результаты», вы увидите что-то вроде:

<!DOCTYPE http...

что, вероятно, то, что вы ожидали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...