美文网首页
7.31 HTTP 请求

7.31 HTTP 请求

作者: jayck | 来源:发表于2016-08-02 20:47 被阅读15次

    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 请求

          本文链接:https://www.haomeiwen.com/subject/rufqsttx.html