Socket和HTTP区别
Socket:长连接 数据传输实时 开发效率低 数据传输效率高(可以完全自定义请求和响应头数据)
HTTP数据传输协议:短连接 基于TCP链接协议 开发效率高 容错性强 对程序员要求低 传输数据效率较低因为不管传输什么数据都要带一堆请求头和相应头
接口文档
1.请求地址(接口地址)
2.请求方式:get/post
3.请求参数介绍
4.返回数据格式:xml/json
5.返回数据介绍
image.png
HTTPSession练习
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *path = @"http://apis.juhe.cn/mobile/get?phone=1998078715&key=1a9005ff5d3f636273a09b3d6edcc639";
NSURL *url = [NSURL URLWithString:path];
//创建网络请求
NSURLRequest *request = [NSURLRequest requestWithURL:url];
//创建网络会话对象
NSURLSession *session = [NSURLSession sharedSession];
//创建网路任务
NSURLSessionTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSString *jsonString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",jsonString);
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSDictionary *resultDic = dic[@"result"];
NSString *str =resultDic [@"province"];
NSLog(@"%@",str);
//NSString *resultStr = dic[@"result"][@"province"];
}];
//开始执行网络任务
[task resume];
}
@end
image.png
- Get:获取数据时多用Get,请求参数放到请求地址的后面
- Post:给服务器传数据多用Post,请求参数放到请求体里面