2011-06-16 26 views
0

我在使用ASIHTTPRequest(http://allseeing-i.com/ASIHTTPRequest/)庫編寫iPhone應用程序,以實現與Web應用程序的RESTful服務進行REST交互。阻止ASIHTTPRequest跟隨HTTP 303請參閱其他

我目前正面臨一個錯誤,那就是我從這些頁面中的一個接收到200 OK並且沒有正文。另外,我注意到請求完成後標題是空白的,但事先沒有空白標題(它們被OAuth認證填充)。

通過一個過於複雜的網絡/代理設置,我能夠驗證我正在接收303(如預期),並且ASIHTTPRequest正在遵循該請求(如半預期)。但是,由於我需要重新創建OAuth身份驗證標頭,因此RESTful服務會提供我想要的信息,因此我需要阻止 ASIHTTPRequest遵循303s,而不是僅返回303,以便我可以自己讀取Location標頭並用適當的OAuth標題創建一個新的請求。如果有人不得不這樣做,請讓我知道你是怎麼做到的!

感謝, 泰勒

富豪離開跳板跳水到NSAutoreleasePool

回答

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頭取消您的連接,所以它不會加載整個頁面。

+0

我剛剛發現ASIHTTPRequest的「setShouldRedirect」方法/屬性。 – TigerTrussell 2011-06-16 19:43:10

相關問題