如何在 Json 请求的参数中传递 ID 数组
Posted
技术标签:
【中文标题】如何在 Json 请求的参数中传递 ID 数组【英文标题】:How to pass an Array of IDs in parameter in Json Request 【发布时间】:2015-10-26 10:39:31 【问题描述】:我有一个 JSON 请求和一些参数...我需要在其中一个参数中传递一个数组...如何?
这是我当前的请求...我有 3 个参数:纬度、经度和数组:数组必须是一个 id 数组(int)
数组:NSArray arrayIds = [NSArrayWithObjects:@"1", @"2", @"3", nil];
-(void) listarAtracoesBusca
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
self.listaAtracoes = [[NSMutableArray alloc]init];
self.indiceAtracaoAtual = 0;
NSString *urlStr = @"";
float latitude = 0.0;
float longitude = 0.0;
if(appDelegate.latitudeAtual)
latitude = appDelegate.latitudeAtual;
if(appDelegate.longitudeAtual)
longitude = appDelegate.longitudeAtual;
[self validarCamposBusca];
urlStr = [NSString stringWithFormat:@"https://host:3000/api/ params?latitude=%f&longitude=%f&array=", latitude, longitude, arrayIds];
NSURL *URL = [NSURL URLWithString:urlStr];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setValue:@"haadushdiuashud" forHTTPHeaderField:@"X-User-Authorization"];
NSString *basicAuthCredentials = [NSString stringWithFormat:@"%@:%@", @"user", @"pass"];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", AFBase64EncodedStringFromString(basicAuthCredentials)];
[request setValue:authValue forHTTPHeaderField:@"Authorization"];
request.HTTPMethod = @"GET";
[request addValue:@"application/json" forHTTPHeaderField:@"Accept"];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
//Do Stuff
if (data.length > 0 && error == nil)
else
NSLog(@"erro: %@", error.description);
];
【问题讨论】:
数组中有哪些值?您要创建的 URL 是什么? 任意数组:NSArray arrayIds = [NSArrayWithObjects:@"1", @"2", @"3", nil];例如 您是否将此 JSON 作为此请求的主体传递?你看过NSJSONSerialization
吗?
好的。您尝试形成的确切 URL 是什么?
该网址仅在本地可用
【参考方案1】:
如果您尝试实现查询 url 之类的东西,那么您可以使用 NSURLQueryItem 来表示 URL 查询部分的单个键/值对。
NSURLComponents *components = [NSURLComponents componentsWithString:@"http://***.com"];
NSURLQueryItem *search = [NSURLQueryItem queryItemWithName:@"q" value:@"ios"];
NSURLQueryItem *count = [NSURLQueryItem queryItemWithName:@"count" value:@"10"];
components.queryItems = @[ search, count ];
NSURL *url = components.URL; // http://***.com?q=ios&count=10
否则,您需要使用 NSJSONSerialization 将 JSON 作为请求正文传递。详情请参考here。
【讨论】:
以上是关于如何在 Json 请求的参数中传递 ID 数组的主要内容,如果未能解决你的问题,请参考以下文章