私のアプリでは、現在、各ビューコントローラーから http リクエストを送信しています。ただし、現在、リクエストを送信するためのメソッドを持つはずの1つのクラスを実装しています。
私の要求は、パラメーターの数によって異なります。たとえば、テーブルビューのリストを取得するには、カテゴリ、サブカテゴリ、フィルター、さらに 5 つのパラメーターを要求に入れる必要があります。
これは私の要求が今のように見えるものです:
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];
[request setValue:verifString forHTTPHeaderField:@"Authorization"];
[request setURL:[NSURL URLWithString:@"http://myweb.com/api/things/list"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
NSMutableString *bodyparams = [NSMutableString stringWithFormat:@"sort=popularity"];
[bodyparams appendFormat:@"&filter=%@",active];
[bodyparams appendFormat:@"&category=%@",useful];
NSData *myRequestData = [NSData dataWithBytes:[bodyparams UTF8String] length:[bodyparams length]];
[request setHTTPBody:myRequestData]
私の最初のアイデアは、これらのパラメーターをすべて受け入れるメソッドを作成することでした。不要なものは nil になり、nil ではないものをパラメーター文字列 (ms) に追加してテストします。
ただし、これはかなり非効率的です。後で、パラメーターの値が格納された辞書を渡すことを考えていました。Android の Java で使用される nameValuePair を持つ配列リストのようなもの。
よくわかりません。辞書からキーとオブジェクトを取得するにはどうすればよいですか
-(NSDictionary *)sendRequest:(NSString *)funcName paramList:(NSDictionary *)params
{
// now I need to add parameters from NSDict params somehow
// ?? confused here :)
}