ios網路編程(一)之網路請求

來源:互聯網
上載者:User

標籤:

小知識:

   1, HTTP協議,Hyper Text Transfer Protocol(超?本傳輸協議)是?於從萬維?伺服器傳送超?本到本地瀏覽器的傳輸協議,HTTP是 ?個應?層協議,由請求和響應構成,是?個標準的用戶端伺服器模型。

  2,url,統?資源定位器,也被稱為?址,因特?上標準的資源?址

      url的符文法: 協議://授權/路徑?查詢

       協議:ftp://(?件傳輸協議) http://(超?本傳輸協議) https://(安全超文字傳輸通訊協定 (HTTPS)) file://(本地檔案協議)

 3,ios下進行網路編程主要分為一下三步:

        1, 用戶端發送請求  

            發送請求的方式:GET和POST

            GET請求:將資訊直接拼接到URL的後面,在真正開發中用的比較多

            POST請求:將一些重要訊息轉化成二進位流。在真正開發中常用於驗證使用者名稱、密碼是否正確,給伺服器上傳資料等

           注意:1),請求方式是由後台決定的,通過介面文檔可以得知請求的方式

                    2),請求方式還有DELETE、PUT等。除了GET可以使用NSURLRequst之外,其他請求必須使用NSURLMutableRequst ,明確指定當前的HTTP請求方式

        2, 和伺服器串連

        3, 伺服器做出響應

 

一、兩種請求方式

    1、給伺服器傳輸資料的?式: GET:通過?址字串。

                                            POST:通過data

    2、傳輸資料的??: GET:?址字串最多255位元組。

                                POST:使?NSData,容量超過1G

    3、安全性: GET:所有傳輸給伺服器的資料,顯?在?址?,類似於密碼的明?輸?,直接可?。

                     POST:資料被轉成NSData(?進位資料),類似於密碼的密?輸?,?法直接讀取。

二、 GET請求

     擷取請求的網址

    NSURL *url = [NSURL URLWithString:網址字串];

    封裝請求對象

     NSURLRequest *requst = [NSURLRequest requestWithURL:url];

    發送請求

    NSURLResponse *response = nil;

    NSError *error = nil;

   NSData *data = [NSURLConnection sendSynchronousRequest:requst returningResponse:&response error:&error];

     /*

     要求方法

   [NSURLConnection sendSynchronousRequest:(NSURLRequest *) returningResponse:(NSURLResponse **) error:(NSError **)]

      下面三個參數

       NSURLRequst 

        NSURLResponse

        NSError

       後面兩個參數之所以傳地址是為了字啊執行該方法時在方法的內部修改參數的值, 這種用法相當於讓一個方法有多個傳回值

  */

 

解析接收的資料(接收的資料類型視傳回型別而定)

  NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves) error:nil];

三、POST請求

    擷取請求網址

    NSURL *url = [NSURL URLWithString:網址字串];

     封裝成對象

   NSMutableURLRequest *requst = [NSMutableURLRequest requestWithURL:url cachePolicy:(NSURLRequestUseProtocolCachePolicy) timeoutInterval:10];

    /*

       上面方法的參數:

       1, URL 網址

       2, cachePolicy:緩衝機制,一般情況下使用 NSURLRequestUseProtocolCachePolicy

      3, timeoutInterval 逾時機制

     */

 

    發送請求

    [requst setHTTPMethod:@"POST"];

    NSData *data = [需要加密的字串  dataUsingEncoding:NSUTF8StringEncoding];

    [requst setHTTPBody:data];

 

    NSURLResponse *response = nil;

    NSError *error = nil;

   NSData *contentData = [NSURLConnection sendSynchronousRequest:requst returningResponse:&response error:&error];

    

     資料解析

    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:contentData options:(NSJSONReadingMutableLeaves | NSJSONReadingMutableContainers) error:nil];

    

 

ios網路編程(一)之網路請求

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.