解析从Twitpic API返回的数据

时间:2010-01-24 14:10:16

标签: iphone xml api twitter twitpic

我只是想问你是否有人可以帮我解析Twitpic API返回的数据?

我正在使用ASIHTTPRequest Wrapper for Cocoa创建HTTPFormRequest。这一切都发生在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,但我不知道如何使用它。我只需要获取图像的网址。

提前谢谢。

3 个答案:

答案 0 :(得分:0)

请在这里查看我的小型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

答案 1 :(得分:0)

使用 NSScanner 在本教程click here底部编写。它们正好显示您所需的内容,仅检索上传图像的 mediaurl =网址。

NSScanner *scanner = [NSScanner scannerWithString:responseString]; ...

答案 2 :(得分:0)

GSTwitPicEngine对XML和JSON进行解析:http://github.com/Gurpartap/GSTwitPicEngine

但是,为什么不使用JSON格式的Twitpic API响应呢?使用yajl,TouchJSON,json-framework或其他Cocoa JSON库很容易解析和处理