1

我在向 NSMutableURlRequest 添加标头时遇到问题,问题是当我在“授权”下方添加标头时,它没有显示出来。但是,如果我用静态字符串 exp (@"asdadsadsadga") 替换下面的实例变量“auth”,则会显示“Authorization”标题。在这一点上我很迷茫。

NSURL *url = [NSURL URLWithString:@"https://www.google.com/analytics/feeds/accounts/default"];
NSMutableURLRequest *profileRequest = [NSMutableURLRequest requestWithURL:url];

NSLog(auth); //prints correctly
NSString *authString = [NSString stringWithFormat:@"GoogleLogin Auth=%@", auth];
[profileRequest addValue:authString forHTTPHeaderField:@"Authorization"];

NSDictionary *allheaders = [profileRequest allHTTPHeaderFields];

for (id key in allheaders)
{
  //Nothing prints
  NSLog(@"key: %@, value: %@", key, [allheaders objectForKey:key]);
}

NSLog(auth); //Prints correctly
4

2 回答 2

1

首先,将 NSLog(auth) 替换为 NSLog(@"%@", auth)。前者很危险,可能会暴露这里发生的一些事情。您还应该尝试尽早添加:

auth = @"asdasdasdad";

您还应该尝试直接转储所有标题:

NSLog(@"%@", [profileRequest allHTTPHeaderFields];

这可能会有所启发。我怀疑问题出在您的 auth 变量中,可能与内存管理有关,而不是在 NSMutableURLRequest 中。

于 2009-05-07T00:26:25.303 回答
0

您用于生成 base64Encoded 字符串的代码已损坏。

尝试使用页面底部列出的方法:http: //cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html

于 2009-11-23T06:42:29.130 回答