1. 程式人生 > >OC網路:HTTP請求的常見方法

OC網路:HTTP請求的常見方法

HTTP請求的常見方法

  • GET
    • 所有引數拼接在URL後面,並且引數之間用&隔開
    • 沒有請求體
    • 一般用來查詢資料
  • POST
    • 所有引數都放在請求體
    • 一般用來修改、增加、刪除資料

建立HTTP請求

  • GET
// 請求路徑
NSString *urlString = @"http://520it.com?name=張三&pwd=123";
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

// 建立URL
NSURL *url = [NSURL
URLWithString:urlString]; // 建立請求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 設定請求方法(預設就是GET請求) request.HTTPMethod = @"GET";
  • POST
// 請求路徑
NSString *urlString = @"http://520it.com/圖片";
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

// 建立URL
NSURL *url = [NSURL URLWithString:urlString]; // 建立請求 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 設定請求方法 request.HTTPMethod = @"POST"; // 設定請求體 request.HTTPBody = [@"name=張三&pwd=123" dataUsingEncoding:NSUTF8StringEncoding];

使用NSURLConnection傳送HTTP請求

傳送同步請求

+ (NSData *)sendSynchronousRequest:(NSURLRequest
*)request returningResponse:(NSURLResponse **)response error:(NSError **)error; // 這個方法是阻塞式的,會在當前執行緒傳送請求 // 當伺服器的資料完全返回時,這個方法才會返回,程式碼才會繼續往下執行

傳送非同步請求-block

+ (void)sendAsynchronousRequest:(NSURLRequest*) request
                          queue:(NSOperationQueue*) queue
              completionHandler:(void (^)(NSURLResponse* response, NSData* data, NSError* connectionError)) handler;
// 會自動開啟一個子執行緒去傳送請求
// 當請求完畢(成功\失敗),會自動呼叫handler這個block
// handler這個block會放到queue這個佇列中執行

傳送非同步請求-delegate

  • 建立NSURLConnection物件
// startImmediately==YES,建立完畢後,自動傳送非同步請求
- (instancetype)initWithRequest:(NSURLRequest *)request delegate:(id)delegate startImmediately:(BOOL)startImmediately;
- (instancetype)initWithRequest:(NSURLRequest *)request delegate:(id)delegate; // 建立完畢後,自動傳送非同步請求
+ (NSURLConnection*)connectionWithRequest:(NSURLRequest *)request delegate:(id)delegate; // 建立完畢後,自動傳送非同步請求
  • 傳送請求
[connection start];
  • 遵守NSURLConnectionDataDelegate協議,實現協議中的代理方法
// 當接收到伺服器的響應時就會呼叫
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;

// 每當接收到伺服器返回的資料時就會呼叫1次(資料量大的時候,這個方法就會被呼叫多次)
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;

// 當伺服器的資料完全返回時呼叫(伺服器的資料接收完畢)
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

// 當請求失敗的時候呼叫
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
  • 取消請求
[connection cancel];

NSString和NSData的互相轉換

  • NSString -> NSData
NSData *data = [@"520it.com" dataUsingEncoding:NSUTF8StringEncoding];
  • NSData -> NSString
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  //傳送請求給伺服器,載入右側的資料
        NSMutableDictionary *params = [NSMutableDictionary dictionary];
        params[@"a"] = @"list";
        params[@"c"] = @"subscribe";
        params[@"category_id"] [email protected](c.id);
        [[AFHTTPSessionManager manager] GET:@"http://api.budejie.com/api/api_open.php" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
            //字典轉模型陣列
           NSArray *users = [XJQRecommendUser objectArrayWithKeyValuesArray:responseObject[@"list"]];

            //添加當前類別對應的使用者組
            [c.users addObjectsFromArray:users];
            //重新整理表格
            [self.detailVC reloadData];

        } failure:^(NSURLSessionDataTask *task, NSError *error) {
            [SVProgressHUD showErrorWithStatus:@"載入資料失敗"];
        }];

相關推薦

OC網路HTTP請求常見方法

HTTP請求的常見方法 GET 所有引數拼接在URL後面,並且引數之間用&隔開 沒有請求體 一般用來查詢資料 POST 所有引數都放在請求體中 一般用來修改、增加、刪除資料

12. HTTP協議二HTTP請求與響應、常見狀態碼

pro per 多重 並發 not 條件 轉換 tip author HTTP請求與響應 HTTP請求 HTTP請求是指從客戶端到服務器端的請求消息。HTTP請求主要由三部分構成,請求行、請求頭(headers)、body(請求數據)。 上圖是筆者用Charles抓包工

後臺發送http請求通用方法,包括get和post

util line 通用方法 返回 finall 6.0 val except ktr package com.examsafety.service.sh; import java.io.BufferedReader; import java.io.IOExceptio

深入淺出HTTP請求方式

網頁代碼 協議標準 通信速度 狀態碼 ie瀏覽器 實體 blog blank fff HTTP協議(HyperText Transfer Protocol,超文本傳輸協議),HTTP協議位於應用層,由請求和響應構成。是用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議。在

Jmeter取樣器http請求、FTP請求

性能測試 sample sel 就會 交互 remote 原因 Coding logic 1.1.1 取樣器 8類可執行的元件中,取樣器是典型的不與其他元件發生交互作用的元件,邏輯控制器指對其子節點的取樣器有效,而其他元件(配置元件、定時器、斷言、監聽器)需要與取

JAVA實現HTTP請求方法

config auth AMM connect www 超時 port encoding n) 目前JAVA實現HTTP請求的方法用的最多的有兩種: 第一種是java原生HttpURLConnectionimport java.io.BufferedReader; i

HTTP請求的過程&HTTP/1.0和HTTP/1.1的區別&HTTP怎麼處理長連線

1.HTTP簡介   web瀏覽器和伺服器之類的互動過程必須遵守的協議.他是tcp/ip中的一個應用協議。用來協議資料交換過程和資料本身的格式.主要的有HTTP/1.0和HTTP1.1.   HTTP/1.0和HTTP/1.1都把TCP作為底層的傳輸協議。   HTTP客戶首先

Http請求常見狀態含義

http狀態返回程式碼 1xx(臨時響應) 100 (繼續) 請求者應當繼續提出請求。 伺服器返回此程式碼表示已收到請求的第一部分,正在等待其餘部分。 101 (切換協議) 請求者已要求伺服器切換協議,伺服器已確認並準備切換。 http狀態返回程式碼 2xx (成功) 200 (成

Web學習筆記(一)HTTP請求

HTTP請求流程 手頭有本《Web安全深度剖析》,感覺很裝逼,就看了看。 客戶端傳送Request請求,服務端返回Response請求 客戶端一般就是我們用的瀏覽器,服務端一般是高效能的計算機(組),比如www.baidu.com就代表一個伺服器的地址,即域名

網路程式設計--http請求、響應網頁

網路程式設計–http請求、響應網頁 http協議是一個tcp應用層的超文字傳輸協議,主要是對網頁的傳輸和資料的傳輸 http傳輸過程: 一端通過http請求的格式傳送具體請求內容,另一端接收http請求,按照協議 格式進行解析,獲取真實請求後按照http協議響

android9.0 無法進行http請求解決方法。CLEARTEXT communication to host not permitted by network security

轉自:https://blog.csdn.net/qq_18620851/article/details/80617549  問題: 由於 Android P 限制了明文流量的網路請求,非加密的流量請求都會被系統禁止掉。 如果當前應用的請求是 htttp 請求,而非 https ,

javaweb基礎第五課http請求

  這節課我們專門來講http請求     在第三課我們講過,瀏覽器可以給伺服器傳送http請求,那麼這個請求到底是什麼,包含了了些資訊?       這個就是上節課我們傳送的/test請求所包含的請求頭(requ

python爬蟲http請求頭部(header)詳解

通常HTTP訊息包括客戶機向伺服器的請求訊息和伺服器向客戶機的響應訊息。這兩種型別的訊息由一個起始行,一個或者多個頭域,一個只是頭域結束的空行和可 選的訊息體組成。HTTP的頭域包括通用頭,請求頭,響應頭和實體頭四個部分。每個頭域由一個域名,冒號

從使用者的角度看待HTTP請求408錯誤以及解決辦法

以前剖析問題都是從開發者的角度去解析HTTP [408]錯誤。這裡,我從網站使用者的角度去說說這個問題。 錯誤描述 對於大多數網站而言,我們所看到的錯誤訊息已經是開發者定製過的頁面,比如我們最常見的自定義404錯誤頁面,一般而言,我們看到的408錯誤應該是類似這樣的提示:“408:Request Time

微信小程式開發http請求的session管理

作為一個開發JavaWeb應用的程式猿,都喜歡將使用者登入後的使用者資訊(比如說使用者id,使用者名稱稱)放入session中儲存,之後在業務邏輯的開發中需要用到使用者資訊的時候就可以輕鬆又方便的從session中取到值。最近在開發微信小程式的時候碰到一個問

windows網路——傳送http請求

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <winsock2.h> #pragma comment(lib,"ws2_32.l

HTTP請求介面方法(POST/GET)

 private static string HttpPost(string Url, string postDataStr)         {             HttpWebRequest request = (HttpWebRequest)WebRequest

IIS進行處理HTTP請求方法

在IIS中要怎麼處理HTTP請求?下面就來看看流程吧。 一、下面的列表描述了請求處理流程: 1、當客戶端發起你個面向伺服器的http請求後,HTTP.sys截獲該請求。 2、HTTP.sys通知WAS從配置檔案中獲取必要的資訊。FTP 3、WAS從applicationHos

Charles_NHTTP請求響應監聽工具

Charles:HTTP請求響應監聽工具使用說明.doc 1.    介紹 Charles是一個HTTP代理伺服器,HTTP監視器,反轉代理伺服器.它允許一個開發者檢視所有連線網際網路的HT

HTTP常見方法及對應的Servlet函式

詳細情況檢視RFC文件。:       GET:   請求指定的頁面資訊,並返回實體主體。       HEAD:   只請求頁面的首部。       POST:   請求伺服器接受所指定的文件作為對所標識的URI的新的從屬實體。       PUT:   從客戶端向伺服器傳