如何在iphone中多次调用json url?
Posted
技术标签:
【中文标题】如何在iphone中多次调用json url?【英文标题】:How can call json url multiples times in iphone? 【发布时间】:2013-02-27 09:05:41 【问题描述】:您好,我正在开发一个应用程序作为货币转换器,我有一个 URL,它将只返回一种国家/地区的货币,但我的模块看起来像如果用户选择一个国家,那么我需要显示多个国家/地区的货币转换器值列表所以我需要不止一次打电话给 josn。 代码如下:
responseData = [[NSMutableData data] retain];
ArrData = [NSMutableArray array];
NSString *strURL = [NSString stringWithFormat:@"http://rate-exchange.appspot.com/currency?from=%@&to=%@&q=1",strtablbase,strto];
NSURL *url = [NSURL URLWithString:strURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
-(void)connectionDidFinishLoading:(NSURLConnection *)connection [连接释放]; NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; [响应数据发布];
results = [responseString JSONValue];
livevalues=[responseString JSONValue];
使用上面的代码,我得到一个国家的值,但我需要以不同的方式传递一个 strto 值 是否可以? 如果是,请提出建议并帮助我解决这个问题。
【问题讨论】:
请为帮助您解决问题的答案投票,而不是在评论中写下谢谢。如果您认为其中一个是正确的,请检查它作为答案。 【参考方案1】:是的,您可以使用 NSOperation Queues 调用不同的 URL,或者如果您正在使用 Asihttprequest,这个 Link 可能对您有用:)
【讨论】:
首先感谢您的建议...请给我一些关于如何使用该链接的想法? 该链接指的是使用 ASIHttpRequest 框架提出的请求的答案,可以在这里找到allseeing-i.com/ASIHTTPRequest。但是该框架很旧,开发人员不使用它,他在主页上说。他不建议再使用这个框架了。【参考方案2】:responseData = [[NSMutableData data] retain];
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:@"country1"];
[array addObject:@"country2"];
for (NSString *urlString in array)
strtablbase = [NSString stringWithFormat:@"%@",urlString];
NSString *strURL = [NSString stringWithFormat:@"http://rate-exchange.appspot.com/currency?from=%@&to=%@&q=1",strtablbase,strto];
NSURL *url = [NSURL URLWithString:strURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
试试这个..
【讨论】:
请检查我编辑的问题... nslog of livevalues 只有一个值【参考方案3】:当然可以传递不同的值。就像你已经做的那样,你可以一个接一个地开始连接。如果服务器属于你,我会执行一个请求,一次返回所有费率。它节省了发送和接收请求的时间。如果您在一个请求中获得 100 字节或 500 字节,这真的无关紧要(等待时间)。
否则你需要调用很多请求。就像说的那样,您可以一个接一个地调用,甚至可以同时调用 2-3 个请求。您可以自行实现该机制,也可以使用NSOperationQueue
,这正是针对 Apple 的许多请求而制定的。
欲了解更多信息https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/NSOperationQueue_class/Reference/Reference.html
我要你指出方法(NSURLConnection)
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler
【讨论】:
以上是关于如何在iphone中多次调用json url?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# HttpClient 中循环调用分页 URL 以从 JSON 结果中下载所有页面