<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                首先我們來創建一個URL ~~~ NSURL *url = [NSURL URLWithString:@"http://m.baidu.com"]; ~~~ m:mobile專門給手機提供訪問的連接 **創建請求對象,根據url向服務器索要數據** ~~~ NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:15]; ~~~ - 這個方法里面,我們要做的事情: - 通過NSMutableURLRequest告訴服務器一些額外的信息 - timeoutInterval:請求超時時長,在指定的時間內,如果沒有得到服務器的響應,則認為請求是失敗的 - 默認是60s 但是建議在15~30s之間 - cachePolicy 緩存策略 - NSURLRequestUseProtocolCachePolicy = 0, 默認的策略 - NSURLRequestReloadIgnoringLocalCacheData = 1,每次從服務器加載,忽略本地緩存。 - 一般使用在實時性要求很高的應用,股票/12306/ - 下面兩個一般使用在開發離線版應用。 - 離線版應用一般需要兩個數據庫,一個是本地數據庫Sqlite3,一個服務器數據庫。 - NSURLRequestReturnCacheDataElseLoad = 2, 有緩存,就返回緩存數據,沒有就從服務器加載。 - NSURLRequestReturnCacheDataDontLoad = 3, 有緩存,就返回緩存數據,沒有就不加載 - 告訴服務器,我是iPhone 并且支持Apple的網頁套件 ~~~ [request setValue:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.7 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.7" forHTTPHeaderField:@"User-Agent"]; ~~~ - 將請求對象發送給服務器–(網絡訪問都是耗時操作,使用異步) - sendAsynchronousRequest:本身是異步,NSURLConnection內部會開啟一條線程進行網絡訪問 - queue:決定了completionHandler回調所在的線程 - **如何選擇隊列** - 如果獲得服務器響應的時候,要做耗時操作,則選擇自己創建隊列,比如下載一個zip包,解壓縮 - 如果獲得響應后直接更新UI,則選擇主隊列。 completionHandler:服務器響應客戶端的回調。 **response** 本質是NSHTTPURLResponse - statusCode:狀態碼,可以根據這個值判斷是否請求出錯。 - allHeaderFields:獲得響應體 - URL:一般使用在重定向,如果不需要重定向,響應的url和請求的url是一樣的。 - MIMEType:服務器告訴客戶端返回的數據類型,并決定客戶端使用什么軟件查看內容 - textEncodingName : 服務器告訴客戶端返回內容的編碼格式 **下面兩個屬性一般使用在開發下載功能** - expectedContentLength:服務器返回數據的長度,客戶端可以通過該屬性獲得文件大 - suggestedFilename:服務器建議客戶端保存文件使用的名字 如下: ~~~ [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { if(connectionError != nil || data.length == 0) { NSLog(@"你的網絡不給力哦"); return; } NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; ~~~ **加載html** ~~~ [self.webView loadData:data MIMEType:response.MIMEType textEncodingName:response.textEncodingName baseURL:url]; ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看