iPhone URL请求:向HTTP标头字段添加值

Mic*_*ich 6 iphone cocoa cocoa-touch

我正在尝试为URL请求的标头添加值.

像这样的东西工作得很好:

[urlRequest addValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
Run Code Online (Sandbox Code Playgroud)

但这甚至没有显示在标题中:

NSString *authString = [[NSString alloc] initWithString:
                          [defaults objectForKey:@"auth"]];
[urlRequest addValue:authString forHTTPHeaderField:@"iphoneID"];
Run Code Online (Sandbox Code Playgroud)

我完全难过了.auth字符串长约90个字符.这是一个问题吗?

编辑: 这是我正在尝试的代码:

NSString *authString = [[NSString alloc] initWithString:[defaults objectForKey:@"auth"]]; 
[urlRequest addValue:authString forHTTPHeaderField:@"iphoneid"]; 
[urlRequest addValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; 
Run Code Online (Sandbox Code Playgroud)

我可以看到通过Wireshark发送的Accept-Encoding标头,但是iphoneid无处可寻.它只是一个字符串,长80-90个字符.

另一个更新: 所以似乎问题不是字段"iphoneid"而是我试图传递给它的authString.我刚用@"something"创建的其他字符串工作正常,但是我从NSUserDefaults中提取的auth字符串没有出现.

关于如何调试这个的建议?

Mic*_*ich 7

真正的问题.

我从NSUserDefaults拉出的字符串已经有一行结尾了.当设置为标题时,\r\n附加另一个,显然无效.因此,标头不会出现在任何传出的数据包中.

修复:

在设置为标题值之前,使用此选项剪掉字符.

[yourString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];