AFNetworking
允许您将参数的 NSDictionary
添加到请求中,并将它们附加到请求中。所以如果我想用 ?q=8&home=8888
做一个 GET
请求,我只需要做一个像 @{@"q": @"这样的 NSDictionary 8", @"home": @"8888"}
非常简单。
有没有办法用 NSURLSession
/NSURLConnection
/NSURLRequest
来做到这一点?
我知道我可以使用 NSJSONSerialization
来附加 JSON 数据,但是如果我只想将它们作为 URL 中的 GET
参数怎么办?我应该只添加一个类别吗?
最佳答案
您可以通过使用 NSURLComponents 和 NSURLQueryItems 更新 url 来做到这一点。在下面的示例中,假设 URL 参数已经在 NSMutableURLRequest 上设置。您可以在使用它之前修改它以包含 NSDictionary params
中的每个参数。请注意,每个参数在写入之前都已编码。
NSURLComponents *url = [[NSURLComponents alloc] initWithURL:request.URL resolvingAgainstBaseURL:YES];
NSMutableArray *queryItems = NSMutableArray.new;
[params enumerateKeysAndObjectsUsingBlock:^(NSString *name, NSString *value, BOOL *stop) {
[queryItems addObject:[NSURLQueryItem queryItemWithName:name
value:[value stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLQueryAllowedCharacterSet]]];
}];
url.queryItems = queryItems;
request.URL = url.URL;
关于ios - 有什么方法可以将参数的 NSDictionary 附加到 NSURLRequest 而不是手动制作字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21299362/