10、使用ws调用Rest api
目錄
1、簡介
2、添加WS配置
3、發送請求
4、處理請求
5、常用模式和用例?
6、自定義BodyReadables和BodyWritables
6、獨立WS
7、訪問AsyncHttpClient
8、配置WS
1、簡介
有時我們想從一個play應用程序中調用其他HTTP服務。Play提供了WS庫來進行異步HTTP方法調用。
2、添加WS配置
在build.sbt文件中添加如下配置:
libraryDependencies ++= Seq(
? javaWs
)
其次還要開啟Http緩存,PlayWS支持HTTP緩存,但需要JSR-107緩存實現才能啟用此功能。可以添加ehcache:
libraryDependencies += ehcache
3、發送請求
首先需要注入play提供的Ws的相關類
借助ws.url()方法可以創建請求:
然后可以為這個請求request設置一些基本的信息:
最后調用與要使用的HTTP方法對應的方法:
可以使用如下方法發送帶有身份驗證信息的請求:
其中第三個參數WSAauthScheme的取值選項:basic、digest、kerberos、ntlm和spnego
可以通過一下方式使得請求可以重定向:
如下方式添加查詢參數:
如下方式添加頭信息:
如下方式添加cookie信息:
設施請求超時時間:
提交表單數據:
??
提交multipart/form類型的表單數據:
提交json格式數據:
提交xml格式數據:
提交流到請求中:
?通過給請求添加filter對其作一些別的事:
?
4、處理請求
Play中使用WSResponse來封裝響應信息
以json格式的形式處理響應:
以xml格式的形式處理響應:
處理流式響應:
?
5、常用模式和用例?
連接ws調用:
異常恢復:
?將CompletionStage<WSResponse>對象直接映射成 CompletionStage<Result>:
超時處理:
6、自定義BodyReadables和BodyWritables
也可以將自定義類型與response.getBody(myreadable())和request.post(mywritable(data))一起使用
自定義Readables:
自定義Writables:
6、獨立WS
如果想脫離play使用ws,則可以添加依賴庫:
libraryDependencies += "com.typesafe.play" %% "play-ahc-ws-standalone" % playWSStandalone
即可,不依賴于任何的play庫
7、訪問AsyncHttpClient
8、配置WS
在application.conf中進行設置:
play.ws.followRedirects:將客戶端配置為遵循301和302重定向(默認值為true)。play.ws.useProxyProperties:使用系統HTTP代理設置(http.proxyhost,http.proxyport)(默認為true)。play.ws.user agent:配置用戶代理頭字段。play.ws.compressionEnabled:將其設置為true以使用gzip/deflater編碼(默認值為false)。play.ws.timeout.connection:連接到遠程主機時等待的最長時間(默認為120秒)。play.ws.timeout.idle:請求可以保持空閑的最長時間(建立連接但等待更多數據)(默認為120秒)。play.ws.timeout.request:接受請求所用的總時間(即使遠程主機仍在發送數據,請求也會中斷)(默認值為120秒)。總結
以上是生活随笔為你收集整理的10、使用ws调用Rest api的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9、play中缓存的使用
- 下一篇: 219 元,小米推出米家电动剃须刀 S3