一、說明:
",則只能攔截到"
",網頁內部的資源載入攔截不到。頁面跳轉屬於最初始請求之內,可以攔截到。
二、建立nsurlprotocol的子類,通過下面的**註冊此協議類:
[nsurlprotocol
registerclass
:[myurlprotocol
class
]];
三、下面是此子類的**:
#import "myurlprotocol.h"
#define myurlprotocolhandled @"myurlprotocolhandled"
//建立archive資料模型,重寫編碼解碼協議
#pragma mark - 重寫nsurlprotocol子類方法
+ (bool)caninitwithrequest:(nsurlrequest *)request
returnno;}
+ (nsurlrequest *)canonicalrequestforrequest:(nsurlrequest *)request
+ (bool)requestiscacheequivalent:(nsurlrequest *)a
torequest:(nsurlrequest *)b
- (void)startloading
else }
else }
- (void)stoploading
#pragma mark - 網路請求**
- (nsurlrequest *)connection:(nsurlconnection *)connection
willsendrequest:(nsurlrequest *)request
redirectresponse:(nsurlresponse *)response
return request; }
- (bool)connectionshouldusecredentialstorage:(nsurlconnection *)connection
- (void)connection:(nsurlconnection *)connection
didreceiveauthenticationchallenge:(nsurlauthenticationchallenge *)challenge
- (void)connection:(nsurlconnection *)connection
didcancelauthenticationchallenge:(nsurlauthenticationchallenge *)challenge
- (void)connection:(nsurlconnection *)connection
didreceiveresponse:(nsurlresponse *)response
- (void)connection:(nsurlconnection *)connection
didreceivedata:(nsdata *)data
else }
- (nscachedurlresponse*)connection:(nsurlconnection*)connection
willcacheresponse:(nscachedurlresponse *)cachedresponse
- (void)connectiondidfinishloading:(nsurlconnection *)connection
- (void)connection:(nsurlconnection *)connection
didfailwitherror:(nserror *)error
#pragma mark - 為請求建立快取路徑
- (nsstring *)cachepathforrequest:(nsurlrequest *)arequest
@end
@implementation nsurlrequest (mutablecopyworkaround)
- (id) mutablecopyworkaround
@end
@implementationmycachedata
-(id) initwithcoder:(nscoder *) adecoder
[self
setdata:[adecoder decodeobjectforkey:@"data"]];
[self
setrequest:[adecoder decodeobjectforkey:@"request"]];
[self
setresponse:[adecoder decodeobjectforkey:@"response"]];
returnself;}
- (void)encodewithcoder:(nscoder *)acoder
@end
部分****:
使用GraphEdit使用
1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....
MySQL使用學習使用 mysql學習使用
1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...
學習使用CSDN markdown使用
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...