ASIHTTPRequest架構是優秀的第三方Objective-C的HTTP架構,支援Mac OS X和iOS下的HTTP開發。支援人員網站是http://allseeing-i.com/ASIHTTPRequest/。具有如下優點:
支援下載資料放在記憶體或本地檔案
容易訪問請求和應答HTTP header
支援Cookie
支援GZIP請求或應答
支援緩衝
支援同步或非同步請求
支援HTTPS
但ASIHTTPRequest架構不支援ARC,如果在ARC下開發配置起來有點麻煩。本章我們介紹的執行個體是基於ARC下開發的。
安裝和配置ASIHTTPRequest架構
首先https://github.com/pokeb/asi-http-request/tree,下載完成開啟asi-http-request目錄,選擇檔案添加到我們的iOS工程中。
然後我們還需要為工程添加一些支援的類庫或架構,它們包括:
CFNetwork.framework
SystemConfiguration.framework
MobileCoreServices.framework
CoreGraphics.framework
libz.dylib
選擇工程的Targets(編號①所示),再選擇Build Phases(編號②所示),然後再選擇編號③,彈出對話方塊,在對話方塊中選擇上面的架構或類庫。最後點擊編號④所示的Add按鈕添加。
這樣ASIHTTPRequest架構所需要的類庫和架構就添加進來了。然後我們可以編譯一下,看看是否有什麼錯誤。如果我們的工程採用ARC(自動引用計數)管理記憶體的話,就會有些小麻煩,會有編譯錯誤。
這些編譯錯誤不能難看出是ARC的不支援錯誤,這是由於ASIHTTPRequest架構本身不支援ARC技術,它的原始碼中使用了MRC(手動管理引用
計數)。解決方案是為ASIHTTPRequest架構中的這些來源程式檔案,設定不採用ARC編譯,編譯參數是為-fno-objc-arc。選擇工程的
Targets(編號①所示),再選擇Build
Phases(編號②所示),然後再選擇ASIHTTPRequest中的檔案,雙擊彈出對話方塊,在對話方塊中輸入“-fno-objc-arc”。