解析 Twitpic API 返回的数据

问题描述 投票:0回答:3

我只是想问你是否有人可以帮我解析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。

ios xml cocoa-touch twitter twitpic
3个回答
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

0
投票

按照本教程底部所写的方式尝试使用 NSScanner 单击此处。他们准确地显示了您所需要的内容,仅检索 mediaurl = 上传图像的 URL。

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

0
投票

GSTwitPicEngine 可以解析 XML 和 JSON:http://github.com/Gurpartap/GSTwitPicEngine

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

© www.soinside.com 2019 - 2024. All rights reserved.