返回首页
当前位置: 主页 > 编程语言 > C/C++教程 >

简单的网络请求(User-Agent)告诉服务器客户端类型

时间:2016-10-14 22:52来源:电脑教程学习网 www.etwiki.cn 编辑:admin

// 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

顶一下
(0)
0%
踩一下
(0)
0%
标签(Tag):网络请求
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐内容