– ASIFormDataRequest の場合
ASIFormDataRequest クラスを使用して POST する場合、Content-Type は以下のものが指定される。
‘application/x-www-form-urlencoded’
‘multipart/form-data’
上記以外の Content-Tpye を明示的に指定し、POST する場合は以下の様にする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | // Http通信 postでパラメータ(json形式)をサーバへ渡す NSString *interfaceURL; interfaceURL = [NSString stringWithFormat:@"http://(サーバ アドレス)"]; NSURL *url = [NSURL URLWithString:interfaceURL]; request_ = [[ASIFormDataRequest alloc] initWithURL:url]; request_.delegate = self; [request_ addRequestHeader:@"Content-Type" value:@"application/json; charset=utf-8"]; // WCFインタフェースへ渡すパラメータを json 形式に変換する // NSDictionary → (json文字列) NSString NSDictionary *dict; dict = [NSDictionary dictionaryWithObjectsAndKeys:@"(値1)", @"(キー1)", @"(値2)", @"(キー2)", nil]; SBJsonWriter *writer = [[[SBJsonWriter alloc] init] autorelease]; writer.humanReadable = YES; writer.sortKeys = YES; NSLog(@"送信パラメータ:%@", [writer stringWithObject:dict]); NSString *postParameterString; postParameterString = [NSString stringWithFormat:@"%@", [writer stringWithObject:dict]]; // パラメータをボディにセットし、WCF サーバへ通信する [request_ appendPostData:[postParameterString dataUsingEncoding:NSUTF8StringEncoding]]; [request_ startAsynchronous]; |