程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 簡單的網絡請求(User-Agent)告訴服務器客戶端類型

簡單的網絡請求(User-Agent)告訴服務器客戶端類型

編輯:關於C語言
 

// ViewController.m
// User-Agent
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
}
#pragma mark - 創建點擊事件-簡單的網絡請求,告訴服務器我客戶端所用的機型,根據不同的機型解析不同的網頁.
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

NSLog(@"測試:當前在主線程中:%@",[NSThread currentThread]);
//MARK: - 示例:訪問百度首頁:需要客戶端為(ios)的百度首頁-解決pc端網頁不兼容移動端問題
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
//MARK: - 創建可變請求
//MARK: - NSMutableURLRequest:可變的請求,可以隨時改變請求的內容,如果不改變請求內容,和NSURLRequest是一樣的.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

// 告訴服務器,用的是蘋果手機.
// iPhone : 極簡板.
// iPhone appleWebKit :客戶端正常版.
[request setValue:@"iPhone appleWebKit" forHTTPHeaderField:@"User-Agent"];

//MARK: - 創建異步NSURLSession
// 2.發送請求
// NSUrlConnection 是iOS 2.0 推出的網絡框架. 在iOS9.0/Xcode7.0 之後就被捨棄了.
// iOS 7.0 之後,蘋果推出了 NSUrlSession 的網絡框架用來取代 NSUrlConnection.


// 注意: NSUrlSession 默認就是異步的網絡請求.在NSUrlSession中沒有提供同步方法.
// 默認情況下, completionHandler 的執行線程為子線程.
// resume :相當於開啟網絡連接.
[[[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];
[webview loadHTMLString:Str baseURL:url];

//MARK: - 直接請求網頁地址
//MARK: - [webview loadRequest:request];

[self.view addSubview:webview];
});

}] resume];

}
@end

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