1

我正在将具有某些内容的字符串放在一起,该字符串设置为 NSMutableURLRequest 的 HTTP 标头字段:

NSString *authenticationHeaderString = [NSString stringWithFormat:@"OAuth oauth_callback=\"%@\", oauth_nonce=\"%@\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"%@\", oauth_consumer_key=\"xxxxxxxxx\", oauth_signature=\"%@\", oauth_version=\"1.0\"", [callbackURLString URLEncodedString], nonce, timestampString, [BYOAuthSignatureString signatureStringWithParameters:signingParams URL:[mURLRequest.URL absoluteString] HTTPMethod:mURLRequest.HTTPMethod]];
NSLog(@"authenticationHeaderString: %@", authenticationHeaderString);
[mURLRequest setValue:[NSString stringWithFormat:@"%@", authenticationHeaderString] forHTTPHeaderField:@"Authorization"];
NSLog(@"header:%@", mURLRequest.allHTTPHeaderFields);

在标头字段\"中未转换为"

authenticationHeaderString: OAuth oauth_callback="http%3A%2F%2Fbytolution.com", oauth_nonce="o7QNfKOMBKtdZQmJrbV9QWqVwUkkRK1ABbjfK4hWTQ", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1361735323", oauth_consumer_key="xxxxxxxxxxx", oauth_signature="koNYscKJx3WwC7M4kHsrMpfzYoo=", oauth_version="1.0"

header:{ Authorization = "OAuth oauth_callback=\"http%3A%2F%2Fbytolution.com\", oauth_nonce=\"o7QNfKOMBKtdZQmJrbV9QWqVwUkkRK1ABbjfK4hWTQ\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1361735323\", oauth_consumer_key=\"xxxxxxxxxxxx\", oauth_signature=\"koNYscKJx3WwC7M4kHsrMpfzYoo=\", oauth_version=\"1.0\""; }

这是为什么?

4

2 回答 2

3

这正是 NSDictionarymURLRequest.allHTTPHeaderFields打印自身的方式。每当 NSDictionaries 打印它们的内容时,它们会双引号包含空格的任何字符串。除其他外,它们还转义字符串中的任何双引号。

字符串没有改变。您可以通过这样做来验证这一点

NSLog(@"authHeader: %@", [mURLRequest.allHTTPHeaderFields objectForKey: @"Authorization"]);
于 2013-02-24T20:16:48.910 回答
0

它被转换了......但随后它被转换回用于显示。

您的标题应该没问题,只是它显示为用于记录的字符串。

于 2013-02-24T20:09:42.200 回答