面試使人能夠更正確的認識自己,通過這一輪的面試,我發現自己的基礎知識還是有欠缺的。而且我的記性是真不好,很多寫過的**,通過很長時間的思考和摸索才做出來的效果,過不了多久都忘了,因此我決定把平時常用的,我寫專案的過程中遇到的困難,解決的方法都一一記錄下來,同時,也把平時學習新知識的筆記寫在這裡。
這一篇記錄我學習okhttp3 分以下幾個內容:
1.okhttp3的使用
2.http協議詳解
3.okhttp3的簡單封裝
1.使用前準備:
android studio配置:
新增網路許可權:
uses-permission android:name="android.permission.internet"2.get請求:
當然如果想要改為同步的上傳檔案只要呼叫 mokhttpclient.newcall(request).execute()就可以了。
當然不要忘了新增如下許可權:
uses-permission android:name="android.permission.read_external_storage"uses-permission android:name="android.permission.write_external_storage"
private void downasynfile()@override
public void onresponse(call call, response response) catch (ioexception e)
6.設定超時時間和快取
和okhttp2.x有區別的是不能通過okhttpclient直接設定超時時間和快取了,而是通過okhttpclient.builder來設定,通過builder配置好okhttpclient後用builder.build()來返回okhttpclient,所以我們通常不會呼叫new okhttpclient()來得到okhttpclient,而是通過builder.build():
http協議中通訊的兩方稱作client和server,client向server端經過http協議傳送乙個request,server端收到request後經過一系列的處理返回client乙個response。
超文字傳輸協議
作用:設計之初是為了將超文字標記語言(html)文件從web伺服器傳送到客戶端的瀏覽器。現在http的作用已不侷限於html的傳輸。
schema:指定底層使用的協議:http/https/ftp
port:http伺服器預設埠是80,這種情況下埠號可以省略。如果用了別的埠,必須指明
path:訪問的資源路徑:/st/test
query-string:傳送給http伺服器的資料 name=user&pwd=123456
http是無狀態的,同乙個客戶端的這次請求和上次請求是沒有對應關係的,對http伺服器來說,它並不知道這兩個請求來自同乙個客戶端,這時候就需要cookie機制來維護狀態。
由三部分組成:
request line (請求行), http header ,body
請求行:包括http請求的種類,請求資源的路徑,http協議版本
http header:http頭部資訊
body:傳送給伺服器的query資訊(當使用get時,body是空的,get只能讀取伺服器上的資訊,post能寫入)
request line :協議版本
requeset header :request頭資訊
body:返回的請求資源主體,就是伺服器返回的內容
http協議定義了許多與伺服器互動的方法,最基本的有4種,分別是get,post,put,delete.乙個url位址用於描述乙個網路上的資源,而http中的get post put delete對應著查,改,增,刪4個操作。最常見的get和post.get一般用於獲取/查詢資訊,post一般用於更新資源資訊。
1. get提交的資料會放在url之後,以?分割url和傳輸資料,引數之間以&相連。post是吧提交的資料放在http包的body中。
2. get提交的資料大小有限制(因為瀏覽器對於url的長度有限制)而post方法提交的資料沒有限制。
3. get方式提交資料,會帶來安全問題,比如乙個登入頁面,通過get方式提交資料時,使用者名稱和密碼將出現在url上,如果頁面可以被快取或者其他人可以訪問這台機器,就可以從歷史記錄獲取該賬號密碼
http1.1中定義了5類狀態碼,狀態碼又三位數字組成,第乙個數字定義了響應的類別。
1xx:指示資訊 表示請求已接受,繼續處理
2xx:成功 表示請求已被成功接收,理解,接受。
3xx:重定向 要完成請求必須進行進一步的操作
4xx:客戶端錯誤 請求有語法錯誤或請求無法實現
5xx:伺服器端錯誤,伺服器未能實現合法的請求
常見:200 ok
400 bad request 客戶端請求有語法錯誤,不能被伺服器理解。
401 請求未經授權,這個狀態碼必須和www-authenticate報頭域一起使用
403 伺服器收到請求,但是拒絕提供服務
404 請求資源不存在 可能是輸入了錯誤的url
500 伺服器發生不可預期的錯誤
505 伺服器當前不能出了客戶端的請求,一段時間後可能恢復
OKHttp3學習記錄
一 概述 okhttp作為時下android開發最火熱的網路請求框架,學習下還是很有必要的,記錄學習過程方便以後查詢,guthub位址在android studio中新增依賴 新增網路許可權 二 使用 主要分為這幾步 1.建立okhttpclient物件 2.建立request包括請求體,具體為引數...
OkHttp3簡單使用
複製 目前最新的穩定版可能已經不是3.11.0了,可以到官方github來檢視最新版本 github.com square okht get 預設就是get請求,可以不寫 複製 與get相比,post多了乙個請求體 requestbody 複製 string url 複製 okhttpclient ...
OkHttp3原始碼解析
compile com.squareup.okhttp3 okhttp 3.6.0 最新版本 okhttp的最底層是使用socket,而不是urlconnection,它通過platform的class.forname 反射獲得當前runtime使用的socket庫。okhttp3使用場景特點 資料...