Как передать цели заголовка авторизации c?

Я передаю имя пользователя, пароль для вызова API, он возвращает правильное значение. Но после аутентификации API возвращает токен безопасности, мне нужно захватить токен и передать имя пользователя и пароль. Я делаю то же самое, но он возвращает запрещенную ошибку, которая обозначает ошибку недопустимого токена. Я также пытался base64 передать токен, как предлагалось в некоторых ответ в stackru. Код, который я использую для передачи значений заголовка ниже

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:[self HTTPMethod]];
[request setHTTPBody:self.requestData];
[request addValue:@"xyz" forHTTPHeaderField:@"username"];
[request addValue:@"xyz" forHTTPHeaderField:@"password"];
[request addValue:[[NSUserDefaults standardUserDefaults]valueForKey:@"Auth"] forHTTPHeaderField:@"Authorization"];
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

Я искал методы заголовка, но ничего не помогает. Что я делаю не так здесь. Пожалуйста, кто-нибудь поможет мне это исправить. Спасибо.

1 ответ

Решение

Использование setValue за запрос вместо addValue потому что с addValue Если значение было ранее установлено для указанного поля, предоставленное значение добавляется к существующему значению, используя соответствующий разделитель полей

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:[self HTTPMethod]];
[request setHTTPBody:self.requestData];
[request setValue:@"xyz" forHTTPHeaderField:@"username"];
[request setValue:@"xyz" forHTTPHeaderField:@"password"];
[request setValue:[[NSUserDefaults standardUserDefaults]valueForKey:@"Auth"] forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

проверь яблочную документацию-

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableURLRequest_Class/

Другие вопросы по тегам