日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多线程与网络之NSURLConnection发送请求

發布時間:2024/9/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多线程与网络之NSURLConnection发送请求 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

HTTP

  • 1.簡介
    • 1.URL:統一資源分配符
    • 2.協議名://主機地址/路徑
    • 3.HTTP: 超文本傳輸協議

NSURLConnection

  • 1.基本簡介:

    • 1.1 NSURLRequest: 一個這對象代表一個請求,里面有:
      • 一個NSURL對象
      • 請求方法,請求頭,請求體
      • 請求超時...
    • 1.2 NSMutableURLRequest: NSURLRequest的子類
  • 2.使用步驟:

    • 2.1 創建一個NSURL對象,設置請求路徑(協議名://主機地址/路徑 + ? + 參數1 & 參數2)
    • 2.2 傳入NSURL創建一個NSURLRequest對象,設置請求頭和請求體(默認就有)
    • 2.3 使用NSURLConnection發送請求(得到服務器返回的數據)
    • 2.5 解析服務器響應的數據(將NSData轉成NSString)
  • 3.發送GET請求

    // 第一種:同步 // 1.創建一個NSURL對象,設置請求路徑 NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=xiao&pwd=xiao&type=JSON"];// 2.傳入NSURL創建一個NSURLRequest對象,設置請求頭和請求體(默認存在) NSURLRequest *request = [NSURLRequest requestWithURL:url];// 3.使用NSURLConnection發送請求,得到服務器返回的NSData數據 NSURLResponse *response = nil; // 真實類型是NSHTTPURLResponse NSError *error = nil; /*第一個參數:請求對象第二個參數:響應頭信息,傳地址第三個參數:錯誤信息, 傳地址*/ [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];// 第二種:異步 // 1.創建一個NSURL對象.設置請求路徑 NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=520it&pwd=520it&type=JSON"]; // 2.創建一個NSURLRequest對象,設置請求頭和請求體(默認存在) NSURLRequest *request = [NSURLRequest requestWithURL:url]; // 3.使用NSURLConnection發送網絡請求 [NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {NSLog(@"%@", [NSThread currentThread]);// 4.解析服務器響應的數據NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"%@", str); }];// 第三種:(異步代理)注意data一定要拼接 - (void)sendAsyncDelegate { // 1.創建一個NSURL對象,設置請求路徑 NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=520it&pwd=520it&type=JSON"]; // 2.創建一個NSURLRequest對象,設置請求頭和請求體(默認存在) NSURLRequest *request = [NSURLRequest requestWithURL:url];// 3.使用NSURLConnection來發送請求(返回服務器響應的數據) // [NSURLConnection connectionWithRequest:request delegate:self]; // 第一種 // [[NSURLConnection alloc] initWithRequest:request delegate:self]; // 第二種NSURLConnection *connect = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO]; // 第三種 // 如果 startImmediately 設置成NO時,必須調用start方法調用 [connect start]; } // 實現代理方法 // 1.當接受到服務器響應的時候調用 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { self.dataM = [NSMutableData data]; } // 2.當接收到服務器返回的二進制數據的時候調用, 會調用多次 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [self.dataM appendData:data]; } // 3.當請求失敗或者錯誤的時候調用(請求超時) - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {} // 4.當請求結束的事后調用 - (void)connectionDidFinishLoading:(NSURLConnection *)connection { // 解析數據 NSString *str = [[NSString alloc] initWithData:self.dataM encoding:NSUTF8StringEncoding]; NSLog(@"%@", str); }
  • 4.發送POST請求

    // 1.創建NSURL NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login"];// 2.創建NSMutableURLRequest NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 2.1 設置NSMutableURLRequest的屬性 request.HTTPMethod = @"POST"; request.HTTPBody = [@"username=520it&pwd=520it&type=JSON" dataUsingEncoding:NSUTF8StringEncoding];request.timeoutInterval = 10.0; //過期時間[request setValue:@"ios10" forHTTPHeaderField:@"User-Agent"];// 3.發送請求 [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {// 解析數據NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); }];

轉載于:https://www.cnblogs.com/LongLJ/p/5084337.html

總結

以上是生活随笔為你收集整理的多线程与网络之NSURLConnection发送请求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。