如何在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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在iphone中单击按钮时调用url

如何在 C# HttpClient 中循环调用分页 URL 以从 JSON 结果中下载所有页面

如何使用NodeJs中的rxjs中的forkjoin进行多次调用,使用NPM请求

如何保护来自 iphone 的网络服务 URL?

在 iPhone 应用初始化时进行多次服务调用

如果 iPhone 应用程序中不存在,则在表中插入记录