NSURLRequest
緩存策略
- NSURLRequestUseProtocolCachePolicy=0 默認緩存策略
- NSURLRequestReloadIgnoringLocalCacheData=1 忽略本地緩存數據,直接加載網絡數據,每次都是最新數據
- NSURLRequestReturnCacheDataElseLoad = 2 返回緩存數據,如果沒有緩存從服務器加載
- NSURLRequestReturnCacheDataDontLoad = 3 返回緩存數據,如果沒有緩存,空著!!!
例子
//1.url
NSURL *url = [NSURL URLWithString:@"http://127.0.0.1:8080/demo.json"];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:15.0];
//3.發送請求---異步發送、錯誤處理機制
/*
* 1.request --索要資源的請求
* 2.queue ---調度任務隊列
指定回調隊列代碼塊的隊列!
主隊列:回調代碼塊在主線程上執行
新建隊列:就會在其他線程上執行你的回調代碼
* 3.block ---回調代碼塊,在網絡請求結束后執行!
*3.1 response 服務器的響應
URL 服務器返回的URl,絕大部分都和請求URL是一樣的,有時候不一樣,“重定向”
MIMEType 二進制數據的文件類型,服務器會告訴客戶端,用什么打開二進制數據
expectedContentLength 下載文件的長度
textEncodingName 文件編碼名稱 大多數的UT8
suggestedFilename 服務器建議保存的文件名稱
statusCode; 狀態碼 2XX 3XX重定向 4XX客戶端錯誤 5XX服務器錯誤
allHeaderFields 所有響應頭的內容
* data 數據實體,程序員最關注的部分
* connectionError 錯誤提示
注意:有一種情況沒有錯誤,也沒有數據
if(connectionError || data == nil)
{
NSLog(@“你的網絡不給力,請稍后重試!”);
}
*/
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
NSLog(@"回來的消息%@",response);
NSString *json = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",json);
NSLog(@"%@",[NSThread currentThread]);
}];
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。