AFNetworking
を使用すると、NSDictionary
パラメータをリクエストに追加でき、リクエストに追加されます。したがって、?q=8&home=8888
でGET
リクエストを実行したい場合は、@{@"q": @"8", @"home": @"8888"}
のようなNSDictionaryを非常に簡単に作成します。
NSURLSession
/NSURLConnection
/NSURLRequest
でこれを行う方法はありますか?
JSONデータを追加するためにNSJSONSerialization
を使用できることはわかっていますが、URLのGET
パラメータとしてそれらを必要とする場合はどうなりますか?カテゴリを追加するだけですか?
これを行うには、NSURLComponentsおよびNSURLQueryItemsを使用してURLを更新します。次の例では、NSMutableURLRequestにURLパラメータがすでに設定されていると想定しています。 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;