• 网络请求


    一个http请求, 需要包含 请求方法, 请求地址, 请求协议, 请求头, 请求体这五部分
    请求协议有:http/1.1, http/2( HTTP/2通过使用多路复用技术在一个单独的TCP连接上支持并发, 通过在一个连接上一次性发送多个请求来发送或接收数据)
    客户端在请求头部中指定Connection和Upgrade两个字段发起 HTTP/1.1 协议升级. HTTP/2 的协议名称是 h2c, 代表 HTTP/2 ClearText.
    如果服务端不同意升级或者不支持 Upgrade 所列出的协议,直接忽略即可(当成 HTTP/1.1 请求,以 HTTP/1.1 响应).
    如果同意升级:HTTP Upgrade 响应的状态码是 101,并且响应正文可以使用新协议定义的数据格式。
    这样就可以完成从http/1.1升级到http/2了. 同样也可以从http/1.1升级到WebSocket.

    http响应:
    大体由应答首行, 应答头, 应答体构成.
    但是应答首行表达的信息过多, HTTP/1.1表示访问协议, 200是响应码, OK是描述状态的消息.
    根据单一职责, 我们不应该把这么多内容用一个应答首行来表示.
    这样的话, 我们的响应就应该由访问协议, 响应码, 描述信息, 响应头, 响应体来组成.


    okHttp 3 :
    OkHttp没有指定具体请求协议. 因为OkHttp使用了请求协议的协商升级, 无论是1.1还是2, 都先只以1.1来发送,
    并在发送的信息头里包含协议升级字段. 接下来就看服务器是否支持协议升级了. OkHttp使用的协议升级字段是ALPN

    响应:
    Response类里面有:
    Protocol代表请求协议, int code代表响应码, String message代表描述信息, Headers代表响应头, ResponseBody代表响应体.
    还有Request代表持有的请求, Handshake代表SSL/TLS握手协议验证时的信息

    请求步骤:
    1. OkHttpClient okHttpClient = new OkHttpClient();
    2. Request request = new Request.Builder().url(url)..........build();
    3. Call call = okHttpClient.newCall(request);
    4. call.enqueue(new Callback() {...} //异步请求
    Response response = call.execute(); //同步请求

    get :异步、同步
    post :
    提取响应头:
    响应缓存:
    处理验证:

  • 相关阅读:
    266. Palindrome Permutation
    265. Paint House II
    264. Ugly Number II
    263. Ugly Number
    261. Graph Valid Tree
    260. Single Number III
    259. 3Sum Smaller
    pthon 批量压缩当前目录,子目录下图片
    不小心打开了N多的压缩文件窗口,一句命令就搞定!
    # Writing your-first Django-app-part 4-simple-form
  • 原文地址:https://www.cnblogs.com/tozhjj/p/7205912.html
Copyright © 2020-2023  润新知