iOS- 網絡編程

IOS9網絡編程的重大改變:

(1)NSURLConnection:IOS9之前使用之后棄用

? ?NSURLSession:IOS7.0之后出來IOS9只能使用這個類

(2)后臺服務器傳輸協議由HTTP改成HTTPS。

IOS9之后需要添加下面的東西

IOS開發->info.plist->App

Transpart Security Settings->Allow Arbitrary Loads ->YES

一、URL

1、概念:

Uniform Resource Locator 統一資源定位符

2、結構

URL包含模式(或稱協議)、服務器名稱(或IP地址)、路徑和文件名

https://www.baidu.com/img/bd_logo1.png

可以通過URL找到服務器中的文件

注意:URL里面不要出現中文字符不支持->需要轉碼

二、HTTP

1、全稱:Hypertext Transfer Protocol超文本傳輸協議

HTTPS (全稱:Hyper Text Transfer Protocol over Secure Socket

Layer)是以安全為目標的HTTP通道,簡單講是HTTP的安全版

2、通訊流程:

首先客戶端發送一個請求(request)給服務器,服務器在接收到這個請求后將生成一個響應(response)返回給客戶端

*發送一個請求沒有任何回應

(1)沒聯網

(2)請求內容錯誤URL

*發送一個請求有回應但是沒能得到請求的內容

(1)服務器需要的內容與發送請求的內容不匹配一般在回應中有錯誤碼

(2)服務器需要的內容與發送請求的時候未發送

(3)后臺服務器代碼的問題

一般在回應中有錯誤碼:code:xxx

(300-3007表示的意思是:要完成請求,您需要進一步進行操作。通常,這些狀態代碼是永遠重定向的。

300(多種選擇)服務器根據請求可執行多種操作。服務器可根據請求者來選擇一項操作,或提供操作列表供其選擇)

*常用的請求方法:

(1)get數據寫在URL后面

(2)post寫在請求體里面post傳遞的數據量沒有限制(具體還得看服務器的處理能力)

三、request

1、概念:一個URL加載的請求NSURLRequest

當需要請求頭的時候需使用可變的request即NSMutableURLRequest添加表頭

2、在請求中需要的兩個基本元素

(1)要加載的URL

(2)加載的方式(默認的是get)

3、兩類請求方法

(1)不考慮緩存策略

1)+ (instancetype)requestWithURL:(NSURL *)URL;

2)- (instancetype)initWithURL:(NSURL *)URL

(2)考慮緩存策略超時限制

1)+ (instancetype)requestWithURL:(NSURL *)URL

cachePolicy:(NSURLRequestCachePolicy)cachePolicy

timeoutInterval:(NSTimeInterval)timeoutInterval

2)- (instancetype)initWithURL:(NSURL *)URL

cachePolicy:(NSURLRequestCachePolicy)cachePolicy

timeoutInterval:(NSTimeInterval)timeoutInterval

*cachePolicy緩存方式

*timeoutInterval超時的時間間隔s

3) NSURLRequestUseProtocolCachePolicy,默認的緩存策略如果緩存不存在直接從服務端獲取如果緩存存在會根據response中的Cache-Control字段判斷下一步操作

NSURLRequestReloadIgnoringCacheData忽略緩存重新請求

NSURLRequestReturnCacheDataElseLoad有緩存就使用不管其有效性沒有緩存就重新請求

NSURLRequestReturnCacheDataDontLoad有緩存就用緩存沒有緩存就不發請求當做請求出錯處理(用于離線模式)


四、網絡環境判斷

1、Reachability類名

(1)導入Reachability類名

(2)初始化Reachability對象,HostName盡量用一個比較穩定的網絡

(3)添加觀察者,接收網絡環境發生改變的通知

(4)開始監測

(5)在通知中得到Reachability的對象

2、AFNetWorking中AFNetworkReachabilityManager

(1)導入類庫

(2)創建檢測對象類方法sharedManager

(3)開始監測

(4)通過檢測對象獲得檢測結果回調方法(setReachabilityStatusChangeBlock:)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容

  • iOS網絡編程讀書筆記 Facade Tester客戶端門面模式的實例(被動版本化) 被動版本化,所以硬編碼URL...
    melouverrr閱讀 1,619評論 3 7
  • 一. 網絡編程基礎 在移動互聯網時代,幾乎所有應用都需要用到網絡,只有通過網絡跟外界進行數據交互、數據更新,應用才...
    xx_cc閱讀 19,828評論 12 162
  • iOS的網絡編程主要涉及兩者:客戶端和服務器端,上傳和下載數據都是客戶端通過訪問服務器端來實現的。 服務器端開發語...
    somepark閱讀 1,420評論 0 2
  • iOS中發送http請求的方案 蘋果原生NSURLConnection 03年推出的古老技術NSURLSessio...
    擱淺的青蛙閱讀 657評論 0 4
  • iOS開發系列--網絡開發 概覽 大部分應用程序都或多或少會牽扯到網絡開發,例如說新浪微博、微信等,這些應用本身可...
    lichengjin閱讀 3,702評論 2 7