1. 程式人生 > >iOS 原生網路請求

iOS 原生網路請求

get:

{

    //1.確定請求路徑

    NSURL *url = [NSURL URLWithString:url_str];

    //2.建立請求物件

    //請求物件內部預設已經包含了請求頭和請求方法(GET)

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    //3.獲得會話物件

    NSURLSession *session = [NSURLSession sharedSession];

    //4.根據會話物件建立一個Task(傳送請求)

    /*

     第一個引數:請求物件

     第二個引數:completionHandler回撥(請求完成【成功|失敗】的回撥)

     data:響應體資訊(期望的資料)

     response:響應頭資訊,主要是對伺服器端的描述

     error:錯誤資訊,如果請求失敗,則error有值

     */

    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        if (error == nil) {

            //6.解析伺服器返回的資料

            //說明:(此處返回的資料是JSON格式的,因此使用NSJSONSerialization進行反序列化處理)

            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

            successBlock(dict);

        }

    }];

    //5.執行任務

    [dataTask resume];

}

post:

{

    //1.建立會話物件

    NSURLSession *session=[NSURLSession sharedSession];

    //2.根據會話物件建立task

    NSURL *url=[NSURL URLWithString:urlStr];

    //3.建立可變的請求物件

    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url];

    //4.修改請求方法為POST

    [email protected]"POST";

    //5.設定請求體

    request.HTTPBody=[@"Login=1" dataUsingEncoding:NSUTF8StringEncoding];

    //6.根據會話物件建立一個Task(傳送請求)

    /*

     第一個引數:請求物件

     第二個引數:completionHandler回撥(請求完成【成功|失敗】的回撥)

     data:響應體資訊(期望的資料)

     response:響應頭資訊,主要是對伺服器端的描述

     error:錯誤資訊,如果請求失敗,則error有值

     */

    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error){

        //8.解析資料

        NSDictionary *dict=[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

        NSLog(@"%@",dict);

    }];

    //7.執行任務

    [dataTask resume];

}

相關推薦

iOS 原生網路請求寫法

//網路請求 NSURLSession * mySession = [NSURLSession sharedSession];     NSURL * fullURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", host, sho

iOS原生網路請求使用(NSURL,NSURLRequest/NSMutableURLRequest,NSURLConnection)

在使用原生網路請求開發過程時,總是會使用到如下三個物件NSURL,NSURLRequest(NSMutableURLRequest),NSURLConnection。 訪問URL步驟 1、構造NSURL,,使用NSURL構造一個URL 2、生成一個NSURLRequest,

iOS原生網路請求

1、     同步GET請求       //第一步,建立URL       NSURL *url = [NSURL URLWithString:@"http://api.hudong.com/iphonexml.do?type=focus-c"];          

iOS 原生網路請求

get: {     //1.確定請求路徑     NSURL *url = [NSURL URLWithString:url_str];     //2.建立請求物件     //請求物件內部預設已經包含了請求頭和請求方法(GET)     NSURLReq

iOS HTTP網路請求Cookie的讀取與寫入(NSHTTPCookieStorage)

當你訪問一個網站時,NSURLRequest都會幫你主動記錄下來你訪問的站點設定的Cookie,如果 Cookie 存在的話,會把這些資訊放在 NSHTTPCookieStorage 容器中共享,當你下次再訪問這個站點時,NSURLRequest會拿著上次儲存下來了的Cookie繼續去請求。 同樣適

iOS原生Http請求,get post 非同步

網上有個公開的天氣介面:天氣 ,點進其中的getSupportCityDataset介面,用這個介面為例寫一下iOS上的HTTP請求的寫法。 這裡面提供了get、post請求的格式要求。 1、get: ? 1 2

js原生網路請求資料

用js請求網路資料 第一種方法: //ajax 物件 function ajaxObject() { var xmlHttp; try { // Firefox, O

iOS Http網路請求、快取、及網路資料更新才請求

iOS網路快取掃盲篇 --使用兩行程式碼就能完成80%的快取需求 目錄 由於微信、QQ、微博、這類的應用使用快取很“重”,使一般的使用者也對快取也非常習慣。快取已然成為必備。 快取的目的的以空間換時間 這句話在動輒就是 300M、600M 的大應用上,得到了

iOS去除網路請求到的資料的null值

請求介面獲取到的資料包涵null值,處理的時候遇到了問題。 在網上搜到了幾種解決辦法,自己嘗試了兩種都可以達到目的,在這裡記錄一下。 第一種方法是使用分類給字典新增一個類方法,將字典中的null值全部替換為空字串,程式碼如下: .h檔案程式碼: #import <Fo

iOS NSURLSession網路請求(get/post/下載)

NSURLConnection在iOS 9.0以後就廢棄了 DEPRECATED deprecated廢棄的意思 NSURLSession 已經代替了NSURLConnection 功能上差不多.NSURLSession使用起來更方便,支援下載和上傳檔案,

iOS網路請求資料轉換成plist檔案

需求設想: iOS儲存方式有很多,我就不一一說明了,現在我只提到我用到的。 現在有個需求是將部分資料存到本地,並且在沒有網路的情況下能夠檢視資料。 根據這個需求,也就是需要做一個數據本地化儲存。 那麼我們可以想到有呢麼幾種方式: 1.NSUserDefaults 

iOS-95-網路請求方式彙總(包含AFNetworking、NSMutableURLRequest)

文章包涵AFNetworking、NSMutableURLRequest兩種請求方式:get、post、上傳圖片、解決上傳base64編碼圖片過長問題(使用【2、post  第一種配置】即可解決) 比如報錯:err:Error Domain=com.alamofire.er

仿iOS網路請求的載入框

/*** 傳送請求後的載入框* * @param myView* @param msg*/public void showPopupWindow(View myView, String msg) { PopupWindow popupWindow ; View conten

iOS原生請求獲取Cookie值

header share httpurl logs fields head working cache net 1 //創建URL 2 NSURL * url = [NSURL URLWithString:@"http://api.skyfox.or

iOS重構-輕量級的網路請求封裝實踐

前言 在十分鐘搭建主流框架_簡單的網路部分(OC) 中,我們使用AFN框架順利的傳送網路請求並返回了有用資料,但對AFN框架的依賴十分嚴重,下面我們重構一下。 原始碼github地址 初步 很多時候,我們涉及到網路請求這塊,都離不開幾個第三方框架,AFNetw

iOS開發之HTTP與HTTPS網路請求

HTTP是網際網路中應用最為廣泛的一種網路協議,在進入正文之前,先解釋什麼是網路協議?網路協議為計算機網路中進行資料交換而建立的規則、標準或約定的集合。網路協議是由以下三個要素組成:語義、語法、時序。 (1) 語義 語義是解釋控制資訊每個部分的意義。它規定了需要發出何種控制資訊,

iOS開發系列--並行開發(處理多個網路請求併發的情況)

概覽 大家都知道,在開發過程中應該儘可能減少使用者等待時間,讓程式儘可能快的完成運算。可是無論是哪種語言開發的程式最終往往轉換成組合語言進而解釋成機器碼來執行。但是機器碼是按順序執行的,一個複雜的多步操作只能一步步按順序逐個執行。改變這種狀況可以從兩個角度出發:對於單核處理

iOS--React Native網路請求外掛

一:介紹 React Native (簡稱RN)是Facebook於2015年4月開源的跨平臺移動應用開發框架,是Facebook早先開源的JS框架 React 在原生移動應用平臺的衍生產物,目前支援iOS和安卓兩大平臺。RN使用Javascript語言,類似於HTML的JSX,以及CSS來開發移動應用,因

IOS 使用NSURLProtocol 攔截網路請求實現快取

最近專案需要實現一個WKWebview的快取功能,然後想到通過攔截http/https請求,然後通過url字串的MD5串來作為“Key” 儲存和讀取快取,快取資料使用YYCache 這個快取框架還是很不錯的,有通過連結串列實現的記憶體快取,和資料庫以及檔案實現的

iOS網路請求太頻繁 處理之前傳送的http請求(取消)

搜尋功能在APP中非常的常見,搜尋功能伴隨的往往是實時搜尋結果,極大的方便了使用者的查詢與實時資料的更新,但是也有極大的問題,當我們搜尋框的文字改變的時候,就會進行網路請求,如果輸入特別快的時候,網路請求也會特頻繁,對伺服器的壓力也就更大。 解決方法:在進行新的網路請求的時