【发布时间】:2014-04-17 19:00:11
【问题描述】:
我想出了如何使用 AFnetworking 传递参数,但我很难弄清楚如何将正文作为我的 API 调用的一部分传递。目前这就是我所做的:
- (void)authenticateUser:(NSString *)username
password:(NSString *)password
success:(void (^) (NSString *accessToken))success
failure:(RequestFailureBlock)failure
{
NSString *authURL = @"http://someurlforauthentication";
NSDictionary *parameters = @{@"username" : username,
@"password" : password };
[self.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[self POST:authURL parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject){
NSString *accessToken = responseObject[@"access_token"];
// Store Access Token
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:accessToken forKey:APIAuthorizationToken];
[defaults synchronize];
NSLog(@"Hello %@", accessToken);
success(accessToken);
} failure:failure];
}
我需要做的不是传递任何参数,而是传递一个带有包含登录凭据的 json 字符串的正文。像这样的
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
// Body
const char bytes[43] = "{\n \"username\": \"max\",\n \"password\": \"pass\"\n}";
request.HTTPBody = [NSData dataWithBytes:bytes length:43];
提前致谢。
【问题讨论】:
标签: ios objective-c afnetworking afnetworking-2