1

我正在传递 API 调用的用户名和密码,它返回正确的值。但是在身份验证 API 返回一个安全令牌后,我需要捕获该令牌并与用户名和密码一起传递。我也在做同样的事情,但它返回了表示无效令牌错误的禁止错误。我还尝试了 base64 以按照某些建议传递令牌在stackoverflow中回答。我用来在下面传递标头值的代码

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"];

我搜索了标题方法,但没有任何帮助。我在这里做错了什么。请有人帮我解决它。谢谢。

4

1 回答 1

6

用于setValue请求而不是addValue因为 withaddValue如果先前为指定字段设置了值,则使用适当的字段分隔符将提供的值附加到现有值

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/#//apple_ref/occ/instm/NSMutableURLRequest/setValue:forHTTPHeaderField

于 2015-11-05T06:15:02.777 回答