我正在使用ASIHTTPRequest(http://allseeing-i.com/ASIHTTPRequest/)库编写一个iPhone应用程序,用于REST与Web应用程序RESTful服务的交互。
我目前正面临一个错误,我从其中一个页面收到200 OK并且没有正文。另外,我注意到请求完成后标题是空白的,但标题事先不是空白的(它们填充了OAuth身份验证)。
通过过于复杂的网络/代理设置,我能够验证我收到303(正如预期的那样)并且ASIHTTPRequest正在关注该请求(如预期的那样)。但是,由于我需要重新创建我的OAuth身份验证标头,以便RESTful服务能够提供我想要的信息,我需要阻止 ASIHTTPRequest跟随303s,而只是返回303所以我可以自己阅读Location标头,并使用相应的OAuth标头创建新请求。
如果有人必须这样做,请告诉我你是怎么做到的!
谢谢, 泰勒
将潜水板潜入NSAutoreleasePool
答案 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标头,它就会取消您的连接,因此 不会加载整页。