7.31 HTTP 请求

OSI网络7层协议

应用层 ························· 最上层

会话层

表示层

传输层

网络层

数据链路层

物理层 网卡,设备 ········ 最下层


相应状态码

1xx: Information 信息

2xx:成功获取到数据

3xx:重定向 (不会直接帮你解决,你先去另一个地方找某某某之类的)

4xx: 请求错误 404 not found 最常见

5xx:服务器错误


百分号%转义

将非法字符转换成合法字符

HTTP 80 端口

FTP 20/21 端口

cup 寄存器

缓存(一级,二级,三级)

内存:易失性 断电丢失

闪存:相当于电脑的硬盘,断电不丢失数据,容量大,速度慢


http请求的写法:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let path = "http://www.baidu.com"
        let url = NSURL(string: path)!
        
        let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) in
            //data: 下载到的数据, NSdata
            //response 响应结果, status code以及header field头文件,
            //NSURLResponse, NSHTTPURLResponse
            //error:请求是否出错,如果为nil,请求没出错,NSError
            
            //连接到之前可能会产生错误,可能服务器挂了,可能网络不稳定等
            //所有要写一个解决问题的判断句
            
            if let e = error{
                print("网络提示: \(e.localizedDescription)")
            }
            else {
                //没有错
                if let httpResponse = response as?
                    NSHTTPURLResponse{
                    //服务器有相应
                    
                    if httpResponse.statusCode == 404 {
                        //404 Not Found,URL对应资源不存在
                    }
                    else if httpResponse.statusCode == 200{
                        //请求成功,获取到了数据
                        if let d = data {
                            //需要进一步处理,也许格式不同
                            //将数据转换为UTF-8格式的字符串
                            let html = NSString(data: d, encoding: NSUTF8StringEncoding)
                            print(html)
                        }
                    }
                }
                
            }
            print("请求结果: \(data!.length)")
        }
        task.resume()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

iOS默认只允许https的请求

可以修改info.plist中的文件来允许http

你可能感兴趣的:(7.31 HTTP 请求)