これは私がAPIに投稿する方法です:
curl -v -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST http://sub.domain.com/api/v1/sections.json -d "{\"section\":{\"properties\":{\"email\":\"example@email.com\",\"department\":\"dpt123\",\"phone_number\":\"55578912\"}}}"
私はこのコードを使用してそれを達成しようとしました:
NSString *strurl=@"http://sub.domain.com/api/v1/sections.json";
NSURL *url=[NSURL URLWithString:[strurl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSMutableDictionary *dict=[[NSMutableDictionary alloc] init];
[dict setValue:phoneTxt.text forKey:@"phone_number"];
[dict setValue:emailTxt.text forKey:@"email"];
[dict setValue:departmentTxt.text forKey:@"department"];
ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:url];
NSDictionary *sectionDic = [NSDictionary dictionaryWithObjectsAndKeys:dict, @"properties", nil];
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:sectionDic, @"section",nil];
SBJsonWriter *jsonWriter = [[SBJsonWriter alloc] init];
NSString *params = [jsonWriter stringWithObject:dic];
NSLog(@"param----%@",params);
[request setPostValue:params forKey:@"properties"];
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request startAsynchronous];
しかし、私が持っている応答は次のとおりです。
パラメーター:{"section"=>"{\"properties\":{\"department\":\"dpt123\",\"email\":\"example@email.com\",\"phone_number\":\"55578912\"}}"}
プロパティが文字列であるため、このエラーが発生します。
NoMethodError (undefined method 'stringify_keys' for #<String:0x000000025dbc98>)
セクションとプロパティをキーとして使用して POST するにはどうすればよいですか。よろしくお願いします。