OkHttp 上手

OkHttp 上手

優點

  1. 快、節省帶寬。
  2. 支持 HTTP/2 和 SPDY。
  3. HTTP/2 和 SPDY 允許對同一個主機的所有請求,使用一個 socket。
  4. 如果不支持 SPDY 的話,可以用連接池減少請求等待時間。
  5. GZIP 縮小傳輸大小。
  6. 緩存響應(response caching)徹底避免重復請求。
  7. 網絡異常時重試。
  8. 如果服務有多個 ip ,如果第一個 ip 鏈接失敗時 OkHttp 會嘗試切換到其他 ip 。failover
  9. OkHttp 2.0 API 支持同步阻塞式調用(synchronous blocking calls)和異步回調(async calls with callbacks)。
  10. 不需要重寫網絡相關代碼就可以試用 OkHttp 。okhttp-urlconnection 模塊實現了常用的 java.net.HttpURLConnection 的API,okhttp-apache 模塊實現了 Apache HttpClient 的 API 。

Calls

  1. 支持重定向(302)等。默認自動 重定向。
  2. 如果 resposne 提出驗證權限,OkHttp 會向 Authenticator 詢問權限。
  3. 請求分為同步和異步
  • Synchronous:your thread blocks until the response is readable.
  • Asynchronous:you enqueue the request on any thread, and get called back on another thread when the response is readable.
  1. 請求可以從任何線程取消。如果取消時正在“writing the request body”或“reading the response body”,會收到一個 IOExceptioin 。

Connections

  1. 沒讀懂。

Recipes(菜譜)

  1. 默認是不緩存的。想要緩存響應(responses)的話,需要制定緩存目錄和緩存大小。并且需要有 ETag 之類的 header 配合。 Response Caching

interceptors

  1. Interceptors
  2. Interceptors 分為 Application InterceptorsNetwork Interceptors
  3. Interceptors 可以是一系列的。(Interceptors can be chained.)按順序執行。
  4. 一般在 Interceptors 中做這些:
  • 壓縮
  • 處理 http header
  • 打印日志
  • ...
  1. 如果自動重定向的話(302等),Network Interceptors 能攔截到兩次,Application Intercepors 只能攔截到一次。因為重定向是在 OkHttp Core 中執行的。

HTTPS

還沒看!

轉載于:https://www.cnblogs.com/shang1jk/p/4942146.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272767.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272767.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272767.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于Net開發中一些SQLServer性能優化的建議

一、 ExecuteNonQuery和ExecuteScalar 對數據的更新不需要返回結果集,建議使用ExecuteNonQuery。由于不返回結果集可省掉網絡數據傳輸。它僅僅返回受影響的行數。如果只需更新數據用ExecuteNonQuery性能的開銷比較小。 ExecuteScalar它只返回結果集中第一行的第一列…

jstl mysql_java – jsp jstl sql與mysql中的奇怪行為

在mysql中我有一個存儲過程,其中包含一個sql:select firstname as i_firstname , lastname as i_lastname from roleuserwhere user_id uid ;我使用jstl代碼來獲取值: –call sp_select_username(?);${rows.i_firstname} ${rows.i_lastname}但是這個代…

C# 哈希表(Hashtable)用法筆記

一、什么是Hashtable?Hashtable 類代表了一系列基于鍵的哈希代碼組織起來的鍵/值對。它使用鍵來訪問集合中的元素。當您使用鍵訪問元素時,則使用哈希表,而且您可以識別一個有用的鍵值。哈希表中的每一項都有一個鍵/值對。鍵用于訪問集合中的項…

轉: Div與table的區別

1&#xff1a;速度和加載方式方面的區別 div 和 table 的差異不是速度&#xff0c;而是加載方式&#xff0c;速度只能是指網絡速度&#xff0c;如果速度足夠快&#xff0c;是沒有差異的&#xff1a; div 的加載方式是即讀即加載&#xff0c;遇到 <div> 沒有遇到 </div…

你的工作是為了你自己!

1、無論為誰打工&#xff0c;要為自己學東西&#xff0c;客觀為公司創造價值。我自己當年&#xff0c;無論我在方正給國內企業工作&#xff0c;還是我在雅虎給外國人工作&#xff0c;我都跟別人最大的不一樣&#xff0c;我從來不覺得我在給他們打工&#xff0c;我真的可能是很有…

java 無法注入service_SpringBoot集成shiro,MyRealm中無法@Autowired注入Service的問題

網上說了很多諸如是Spring加載順序&#xff0c;shiroFilter在Spring自動裝配bean之前的問題&#xff0c;其實也有可能忽略如下低級錯誤。在ShiroConfiguration中要使用Bean在ApplicationContext注入MyRealm&#xff0c;不能直接new對象。道理和Controller中調用Service一樣&…

python之函數用法startswith()

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函數用法startswith() #http://www.runoob.com/python/att-string-startswith.html#startswith() #說明&#xff1a;返回布爾值,用于檢查字符串是否是以指定子字符串開頭&#xff0c;如果是則返回 True&#xff0c;否則…

別去取悅,心里沒你的人

鞋子不合適不必硬塞&#xff0c;否則磨了自己的腳&#xff1b;不必討好心里沒你的人&#xff0c;不在乎你的人&#xff0c;你付出再多&#xff0c;也打動不了他。討好心里沒你的人&#xff0c;會讓自己很累很累&#xff1b;總是遷就他&#xff0c;總是圍著他轉&#xff0c;最后…

tensorflow java 加速_Tensorflow使用GPU加速

測試faster-rcnn時&#xff0c;cpu計算速度較慢&#xff0c;調整代碼改為gpu加速運算將 with tf.Session() as sess: 替換為1 gpu_options tf.GPUOptions(per_process_gpu_memory_fraction0.9)2 with tf.Session(configtf.ConfigProto(gpu_optionsgpu_options,log_device_plac…

Install OpenStack Kilo Dashboard wiht Nginx + uWSGI On RHEL7.1

一、安裝Horizon、Nginx、uWSGI yum install -y uwsgi-plugin-python openstack-dashboard uwsgi nginx 二、配置uWSGI cat >/etc/uwsgi.ini <<EOF [uwsgi] plugins python master true processes 10 threads 2 chmod-socket 666socket 127.0.0.1:9000 pidfile …

C#枚舉類型的筆記

一、枚舉類型的概念枚舉類型聲明為一組相關的符號常數定義了一個類型名稱。枚舉用于"多項選擇"場合&#xff0c;就是程序運行時從編譯時已經設定的固定數目的“選擇”中做出決定。枚舉類型&#xff08;也稱為枚舉&#xff09;為定義一組可以賦給變量的命名整數常量提…

java動態打印_JFreeChart學習(三)——動態打印java內存使用情況

JFreeChart動態打印java內存使用情況import java.awt.BasicStroke;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt…

WPF中StringToImage和BoolToImage簡單用法

在WPF的綁定控件操作中&#xff0c;經常會通過bool值或者某些特定的string值做出相應動作。但UI層控件的很多屬性對應的都不是Bool值或者對應的只是固定的String值。 這個時候有兩方法解決該問題。 1.是在后臺cs中做出比較判斷&#xff0c;然后根據相應結果傳達UI層做出相應動作…

【必備】jQuery性能優化的38個建議

一、注意定義jQuery變量的時候添加var關鍵字這個不僅僅是jQuery&#xff0c;所有javascript開發過程中&#xff0c;都需要注意&#xff0c;請一定不要定義成如下&#xff1a;$loading $(#loading); //這個是全局定義&#xff0c;不知道哪里位置倒霉引用了相同的變量名&#xf…

java中策略設計模式_Java中的設計模式(五):策略模式

策略設計模式是行為設計模式之一。當我們為特定任務使用多個算法時&#xff0c;使用策略模式&#xff0c;客戶端決定在運行時使用的實際實現。策略模式的最佳示例之一是Collections.sort()采用Comparator參數的方法。基于Comparator接口的不同實現&#xff0c;對象將以不同的方…

isset函數

isset (PHP 4, PHP 5) isset — 檢測變量是否設置 檢測變量是否設置&#xff0c;并且不是 NULL。 如果 var 存在并且值不是 NULL 則返回 TRUE&#xff0c;否則返回 FALSE。 $a "test"; $b "anothertest";var_dump(isset($a)); // TRUE var_dump(i…

SQLl中的left join、right join、inner join詳解

left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄inner join(等值連接) 只返回兩個表中聯結字段相等的行舉例如下&#xff1a;--------------------------------------------表A記…

afudos備份bios不動_bios刷壞后的兩種解決方法

通常主板新的BIOS可以修正舊版中BIOS的一些BUG&#xff0c;糾正對某些硬件和軟件的兼容問題&#xff0c;添加新硬件的支持等等&#xff0c;所以有時我們需要刷新BIOS。但刷新主板BIOS實際上是存在一定風險的&#xff0c;雖然現在各主板廠商都推出了在Windows下刷新BIOS的軟件&a…

光學基礎知識:白光、顏色混合、RGB、色彩空間

1665年&#xff0c;牛頓(Isaac Newton)進行了太陽光實驗&#xff0c;讓太陽光通過窗板的小圓孔照射在玻璃三角棱鏡上&#xff0c;光束在棱鏡中折射后&#xff0c;擴散為一個連續的彩虹顏色帶&#xff0c;牛頓稱之為光譜&#xff0c;表示連續的可見光譜。而可見光譜只是所有電磁…

SQL Server各個版本功能比較

微軟的SQlserver主要經歷了從sql server 2000 到最新的sql server 2017&#xff0c;現把各個版本的更新特性介紹如下&#xff1a;SQL SERVER 2000日志傳送索引視圖SQL SERVER 2005數據庫鏡像&#xff08;只有 SQL Server 2005 Enterprise Edition SP1 和更高版本支持異步數據庫…