6

我正在该应用程序中开发一个应用程序我需要在 NSURL 中一次传递多个参数我的代码是

responseData = [[NSMutableData data] retain];
ArrData = [NSMutableArray array];
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://rate-exchange.appspot.com/currency?from=%@&to=%@&q=%@",strfrom,strto,strgo]];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
//NSURLRequest *request1 = [NSURLRequest requestWithURL:
//[NSURL URLWithString:@"http://rate-exchange.appspot.com/currency?from=%@&to=%@&q=1",strfrom,strto]];

上面的代码我需要动态传递多个参数。是否可以 ?如果是,那怎么办?感谢和问候

4

2 回答 2

5

在添加到 URL 之前尝试创建一个单独的字符串,例如

 NSSString *strURL=[NSString stringWithFormat:@"http://rate-exchange.appspot.com/currency?from=%@&to=%@&q=%@"‌​,strfrom,strto,strgo];

然后将此 strURL 添加到 URL

NSURL *url = [NSURL URLWithString:strURL];

最后将其添加到请求中,您的代码在向请求中添加 url 的位置是错误的,URL 不是字符串,它是 URL,所以应该requestWithURL不是URLWithString,应该是这样的

NSURLRequest *request = [NSURLRequest requestWithURL:url];
于 2013-02-26T12:30:10.347 回答
1

这些答案中缺少的一件事是[NSString stringByAddingPercentEscapesUsingEncoding:]避免在 URL 中使用无效字符:

NSString *baseURL = [NSString stringWithFormat:@"http://rate-exchange.appspot.com/currency?from=%@&to=%@&q=%@",strfrom,strto,strgo];
NSURL *url = [NSURL URLWithString:[baseURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
于 2013-02-26T12:34:34.073 回答