未使用AFNetworking发送授权标头

时间:2012-09-12 00:20:43

标签: heroku authorization afnetworking

我正在开发一个iOS应用程序,它经常向Web服务器发出请求,而我正在使用AFNetworking(我非常喜欢)。但是,我遇到了一个我无法解决的授权问题。

服务器要求我提供授权标头以获得我想要的响应。具体来说,授权标题应如下所示:

Authorization = "ApiKey some-user-name:someNumericalApiKey"

我在整个项目中使用AFNetworking,除了这个授权问题外,一切正常。我正在使用以下代码:

[myClient setDefaultHeader:@"Authorization" value:@"ApiKey some-user-name:someNumericalApiKey"];

其中myClient指向AFHTTPClient对象。很奇怪,当我使用AFHTTPRequestOperationLogger在XCode中记录请求时,记录器声称我设置了正确的标头。但是,授权标头似乎没有到达服务器 - 我无法在服务器日志中看到它。

为了隔离问题,我尝试使用旧的NSURLRequest以及curl和Python中的requests库来完成相同的请求 - 所有这些工作正常,即授权标题发送&收到(即我可以在服务器日志中看到它),服务器响应应该是它应该是什么。

如果有人遇到同样的问题(并找到了解决方案),我将非常感谢您的回复。

感谢。

2 个答案:

答案 0 :(得分:2)

有时(尤其是使用Django)这是由头参数的重定向剥离引起的。例如,/ Object在后台重定向到/ Object /并在切换期间删除必要的auth参数。

如果您正在使用级别为AFLoggerLevelDebug的{​​{3}},那么您应该可以在控制台中查看此内容。如果您看到带有/ Object的POST请求和带有/ Object /的响应,那么这可能表示正在进行重定向剥离。

答案 1 :(得分:0)

如果您手动构建操作,则不会应用defaultHeaders,这可能是导致问题的原因。