【发布时间】:2014-03-19 13:46:46
【问题描述】:
我正在尝试使用 AFHTTPRequestOperation(通过 AFHTTPRequestOperationManager)将一些信息(例如,“foo = bar”)传输到期望 JSON 的后端,使用如下设置:
- (void) postTest {
NSString *completePath = @"https://httpbin.org/post";
NSDictionary *dataToJSONfy = @{@"foo":@"bar"};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject: dataToJSONfy options:kNilOptions error:&error];
NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"POST" URLString:completePath parameters:nil];
request.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData;
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
AFHTTPRequestOperation *operation =
[self HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id JSON) {
NSLog(@"... success! %@", JSON);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"... failure! Error: %@", error);
}];
[self.operationQueue addOperation:operation];
}
如下图所示
{
args = {
};
data = "{\"foo\":\"bar\"}";
files = {
};
form = {
};
headers = {
[...]
};
json = {
foo = bar;
};
origin = [...];
url = "http://httpbin.org/post";
}
问题:为了将我的信息(“foo = bar;”)包含在正文的“form =”部分而不是“json =”位中,我需要进行哪些更改?
【问题讨论】:
-
不要休息。所以你不想包含 json 而是 formdata 吗?
-
我想在帖子中包含有效的 JSON(例如之前存储的一些服务器响应),但根据 API 规范,所有内容都应该位于“form = {};”下部分。所以我想我想要 JSON 作为 formdata。
-
给你写了一个答案..只是不要把json放在body里,而是用一个字符串作为中间
标签: ios objective-c json afnetworking