Я пытаюсь передать два разных параметра в запросе POST в Objective-C.
Первые параметры должны быть размещены в заголовке, а второй — в теле.
NSDictionary *headerParams = [NSDictionary dictionaryWithObjectsAndKeys:
@"password", @"grant_type",
@"write", @"scope", nil];
NSDictionary *bodyParams = [NSDictionary dictionaryWithObjectsAndKeys:
username, @"username",
password, @"password", nil];
AFHTTPRequestSerializer *r = [AFHTTPRequestSerializer serializer];
NSError *error = nil;
NSData *requestBody = [NSKeyedArchiver archivedDataWithRootObject:bodyParams];
NSMutableURLRequest *request = [r requestWithMethod:@"POST" URLString:urlString parameters:headerParams error:&error];
[request setValue:[NSString stringWithFormat:@"application/json,application/x-www-form-urlencoded"] forHTTPHeaderField:@"Accept"];
[request setValue:[NSString stringWithFormat:@"application/x-www-form-urlencoded"] forHTTPHeaderField:@"ContentType"];
[request setHTTPBody: requestBody]; //--> If I comment this, the headerParams doesn't removed
Если я отлаживаю приведенный выше код с помощью этого оператора:
po [[NSString alloc] initWithData: request.HTTPBody encoding:4]
Я получил nil
. Но когда я опускаю часть [request setHTTPBody: requestBody];
, я получаю значение headerParams
. Я хотел бы получить значение headerParams
и bodyParams
. Что не так? Спасибо.