本文主要是介绍网络必须首先了解的基本知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在网络编程中,有几个必须掌握的基本概念
客户端(Client):移动应用(iOS、android等应用)
服务器(Server):为客户端提供服务、提供数据、提供资源的机器
请求(Request):客户端向服务器索取数据的一种行为
响应(Response):服务器对客户端的请求做出的反应,一般指返回数据给客户端
作为移动开发工程师,主要的精力都是放在前端开发
服务器:
按照软件开发阶段来分,服务器大致可以分为2种
(一)远程服务器:
别名:外网服务器、正式服务器。
使用阶段:应用上线后使用的服务器。
使用人群:共全体用户使用。
速度:取决于服务器的性能、用户的网速。
(二)本地服务器:
别名:内网服务器、测试服务器。
使用阶段:应用处于开发、测试阶段使用的服务器。
使用人群:仅供公司内部的开发人员、测试人员使用。
速度:由于是局域网,所以速度飞快,有助于提高开发测试效率。
本地服务器的选择:
如果处于学习、开发阶段,自己搭建一个本地服务器即可。
选择怎样的本地服务器?:
在公司开发阶段,已经有专门的后端人员开发服务器程序,不由得你选择。
在学习阶段,选择什么样的本地服务器都可以,能用即可。当前选择Apache服务器。
请求数据的基本步骤如下:
第一步:首先确定一个要访问的资源比如m.jd.com京东手机网站,m表示手机网站地址。如下所示:
NSURL *url = [NSURLURLWithString:@"http://m.baidu.com"];
第二步:建立一个请求,即告诉服务器,我们客户端所需要的资源。一般的请求就是建立NSURLRequest类的对象,如果有特殊要求比如要求是苹果版的网站就需要使用NSMutableURLRequest类,并为特定的键赋值。如下所示:NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];
//主动告诉浏览器客户端的类型—— iPhone
[request setValue:@"Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko)"forHTTPHeaderField:@"User-Agent"];
第三步:给服务器发送请求,等服务器处理完成后 返回数据(结果)[NSURLConnectionsendAsynchronousRequest:request queue:[[NSOperationQueuealloc] init]completionHandler:^(NSURLResponse *response,NSData *data, NSError *connectionError) {
// 服务器的相应数据返回后会调用这块代码
}];
代码示例如下所示:新建工程。拖进一个WebView控件,并适配屏幕如下所示
拖线后,代码如下:
<span style="font-size:18px;">//
// ViewController.m
// 最常见的网络访问方法
//
// Created by apple on 15/10/25.
// Copyright (c) 2015年 LiuXun. All rights reserved.
//#import "ViewController.h"@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIWebView *webView;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 1. 确定一个要访问的资源 m.jd.com 京东手机网站NSURL *url = [NSURL URLWithString:@"http://m.baidu.com"];// 2. 建立一个请求, 告诉服务器端,我们客户端需要的资源// NSURLRequest *request = [NSURLRequest requestWithURL:url];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];// 主动告诉浏览器客户端的类型—— iPhone[request setValue:@"Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko)" forHTTPHeaderField:@"User-Agent"];// 3. 把请求发送给服务器, 等服务器处理完成后,返回数据(结果)[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {// 服务器的相应数据返回后会调用这块代码// [data writeToFile:[NSHomeDirectory() stringByAppendingPathComponent:@"123"] atomically:YES];// NSLog(@"%@", NSHomeDirectory());// 编码 —— 注意网络请求的时候返回的都是二进制数据,但是可以进行转换NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"%@", html);[self.webView loadHTMLString:html baseURL:nil];}];}
@end
</span>
这篇关于网络必须首先了解的基本知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!