程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 簡單的網絡請求實現代碼

簡單的網絡請求實現代碼

編輯:關於C語言
 

// ViewController.m
// 最簡單的網絡請求
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
}
#pragma mark - 創建點擊事件 - 初學者最簡單的網絡請求
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NSLog(@"測試");
[self test];
}
- (void)test{
//MARK: - 示例:訪問百度首頁(www.baidu.com);

//MARK: - 創建並發送一個網絡請求
//MARK: - 創建的網絡請求
//MARK: - 同意資源定位符,通過url可以找到唯一的一份資源,可以是網絡資源/也可以是本地資源
NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];

//MARK: - 根據url創建網絡請求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

//MARK: - 獲得服務器響應的數據
//MARK: - 基本上所有的網絡請求都在子線程操作(注:)網絡請求屬於耗時操作,子線程用來處理耗時操作
//MARK: - NSURLSession默認就是開啟異步請求,NSURLSession中沒有提供同步的方法
//MARK: - 默認情況下completionHandler的執行線程為子線程

[[[NSURLSession sharedSession] dataTaskWithRequest:request
completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable
response, NSError * _Nullable error) {

//MARK: - 使用字符串接收二進制數據
NSString *Str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

//MARK: - 創建異步+主隊列
dispatch_async(dispatch_get_main_queue(), ^{

//MARK: - 創建uiwebview
UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];

//MARK: - 直接加載二進制源碼
//MARK: - [webView loadData:data MIMEType:nil textEncodingName:nil baseURL:url];
[webView loadHTMLString:Str baseURL:url];
[self.view addSubview:webView];

//MARK: - 可以將二進制文件寫入到沙盒或者到本地,保存文件為(.html)格式
//MARK: - [data writeToFile:@"寫入到本地或沙盒" atomically:YES];

});
}] resume];
//MARK: - resume:開啟網絡連接
}
@end

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved