gpt4 book ai didi

objective-c - 具有多个 header 的 NSMutableURLRequest

转载 作者:行者123 更新时间:2023-12-03 18:00:10 25 4
gpt4 key购买 nike

我正在尝试创建对 API 的同步 REST 请求。 API 使用 HTTP 基本身份验证,因此除了发送 Accept: application/json header 之外,我还需要指定 Authorization header 以及我的 Base64 编码的用户名和密码对。当我仅使用一个 header 时,请求执行得很好(成功验证我的身份,或指定我的内容格式),但是当我使用两个 header 时,它似乎忽略了授权> 行并返回“HTTP 基本访问被拒绝”(大概是 401)。

所以我一生都无法弄清楚出了什么问题。 我 100% 确定我的凭据有效,因为通过 REST 客户端执行请求效果很好。我对 Objective-C 还很陌生,所以我认为可能存在某种设计模式我不跟随。像这样多次调用 NSMutableDictionary 上的 setValue:forKey 是否有效?我还尝试在请求对象上使用 setValue:forHTTPHeader ,得到相同的结果。

代码如下:

NSURL *url = [NSURL URLWithString:@"http://foo.com/api/v1/bar"];
NSMutableURLRequest *request= [NSMutableURLRequest requestWithURL:url];
NSMutableDictionary *headers = [NSMutableDictionary dictionary];
NSURLResponse *urlResponse;
NSError *error;

[headers setValue:@"application/json" forKey:@"Accept"];
[headers setValue:@"Basic ..." forKey:@"Authorization"];

[request setAllHTTPHeaderFields:headers];

NSData *urlData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&urlResponse
error:&error];

NSString *responseString = [[NSString alloc] initWithData:urlData
encoding:NSUTF8StringEncoding];

NSLog(@"%@",responseString);

最佳答案

答案是使用:

[request addValue:@"Basic ..." forHTTPHeaderField:@"Authorization"];

它将另一个 header 添加到请求实例中。

关于objective-c - 具有多个 header 的 NSMutableURLRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7786860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com