Парсинг данных, возвращаемых из Twitpic API - PullRequest
1 голос
/ 24 января 2010

Я просто хотел спросить вас, может ли кто-нибудь помочь мне разобрать возвращенные данные из Twitpic API?

Я создаю HTTPFormRequest, используя оболочку ASIHTTPRequest для Какао. Все это происходит в приложении для iPhone:

    NSURL *url = [NSURL URLWithString:@"http://twitpic.com/api/upload"];
NSString *username = t_user;
NSString *password = t_pass;
NSData *twitpicImage = UIImagePNGRepresentation(imageView.image);

// Now, set up the post data:
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];

[request setPostValue:twitpicImage forKey:@"media"];
[request setPostValue:username forKey:@"username"];
[request setPostValue:password forKey:@"password"];
[request setData:twitpicImage forKey:@"media"];

// Initiate the WebService request
[request start];
if ([request error]) {

    NSLog(@"%@", [request error]);

} else if ([request responseString]) {

    NSLog(@"%@", [request responseString]);

}}

Теперь самое сложное, я не знаю, как анализировать данные, которые есть в [request responseString]. Я знаю, что мне нужно использовать NSXMLParser, но я не знаю, как его использовать. Все, что мне нужно, это получить URL изображения.

Спасибо заранее.

Ответы [ 3 ]

0 голосов
/ 02 марта 2010

Попробуйте, как написано в нижней части этого урока нажмите здесь , используя NSScanner . Они показывают именно то, что вам нужно, получая только mediaurl = URL загруженного изображения.

NSScanner *scanner = [NSScanner scannerWithString:responseString]; ...
0 голосов
/ 06 мая 2011

GSTwitPicEngine выполняет синтаксический анализ XML и JSON: http://github.com/Gurpartap/GSTwitPicEngine

Однако, почему бы не использовать формат JSON для ответов API Twitpic? С помощью yajl, TouchJSON, json-framework или других библиотек Cocoa JSON легко разобраться и разобраться

0 голосов
/ 24 января 2010

Не стесняйтесь взглянуть на мои маленькие классы разбора XML здесь http://www.memention.com/blog/2009/10/31/The-XML-Runner.html

Я начал использовать их для анализа ответа от загрузки изображения на yfrog.com

В основном мне это нравится ...

В NameValueParser.m я изменил тег ввода на rsp вот так

entryName = [[NSString stringWithString:@"rsp"] retain];

тогда, когда был получен ответ, я его разбираю вот так

NameValueParser *parser = [NameValueParser parser];
[parser addFieldName:@"statusid"];
[parser addFieldName:@"userid"];
[parser addFieldName:@"mediaid"];
[parser addFieldName:@"mediaurl"];
[parser addFieldName:@"err"];
[parser parseData:responseData]; // the response received by ASIHTTPRequest

NSArray *rspArray = [parser list];

NSLog(@"%@", rspArray); // Have a look at it here
...