防止ASIHTTPRequest跟随HTTP 303请参阅其他

时间:2011-06-16 19:31:16

标签: iphone ios xcode4 asihttprequest

我正在使用ASIHTTPRequest(http://allseeing-i.com/ASIHTTPRequest/)库编写一个iPhone应用程序,用于REST与Web应用程序RESTful服务的交互。

我目前正面临一个错误,我从其中一个页面收到200 OK并且没有正文。另外,我注意到请求完成后标题是空白的,但标题事先不是空白的(它们填充了OAuth身份验证)。

通过过于复杂的网络/代理设置,我能够验证我收到303(正如预期的那样)并且ASIHTTPRequest正在关注该请求(如预期的那样)。但是,由于我需要重新创建我的OAuth身份验证标头,以便RESTful服务能够提供我想要的信息,我需要阻止 ASIHTTPRequest跟随303s,而只是返回303所以我可以自己阅读Location标头,并使用相应的OAuth标头创建新请求。

如果有人必须这样做,请告诉我你是怎么做到的!

谢谢, 泰勒

将潜水板潜入NSAutoreleasePool

1 个答案:

答案 0 :(得分:2)

您可以使用request:didReceiveResponseHeaders:委托方法检查您的HTTP状态。这是代码:

- (void)request:(ASIHTTPRequest *)request didReceiveResponseHeaders:(NSDictionary *)responseHeaders {
    if(request.responseStatusCode == 303) {
        [request cancel];
    }
}

- (void)requestFailed:(ASIHTTPRequest *)request {
    if(request.responseStatusCode == 303) {
            // here you can call your custom methods
        }
}

一旦收到HTTP标头,它就会取消您的连接,因此 不会加载整页。