0

これは私が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 するにはどうすればよいですか。よろしくお願いします。

4

1 に答える 1