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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP概述 超文本传输协议(HTTP,HyperText Transfer Protocol) 是互联网上应用最...
    曹渊说创业阅读 3,879评论 2 61
  • 组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://...
    Palomar阅读 1,609评论 0 6
  • 1. 网络基础TCP/IP HTTP基于TCP/IP协议族,HTTP属于它内部的一个子集。 把互联网相关联的协议集...
    yozosann阅读 3,471评论 0 20
  • 13.服务器图片改了,url没有变,需求,服务器的图片变了,就从服务器加载图片,如果服务器的没变,就从本地加载 1...
    AlanGe阅读 1,249评论 0 1
  • 用胡椒粉止牙痛前,先用温水漱口,然后取干净的棉球,用棉球蘸一点胡椒粉(花椒粉也行),涂在牙痛的地方,能够止牙痛。 ...
    益民互助阅读 627评论 0 0