这就是我发布到 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。我将衷心感谢您的帮助。