簡體   English   中英

有沒有辦法讓 Scala 代碼忽略 ssl 驗證?

[英]Is there a way to get scala code to ignore ssl validation?

我正在嘗試下載我的 facebook 個人資料圖片。 我成功地使用 oauth 連接並獲取所有正確的令牌,並且我的 facebook API 告訴我個人資料圖片的 url。

但是,當我嘗試檢索它時,我收到有關無效 tls 的錯誤。 我已經包含了一些顯示我如何下載圖像的 Scala 代碼。 如果我更改為http,我可以獲得它。 但是 https 失敗了。 誰能建議為什么? 我需要忽略 ssl 驗證嗎?

我在 build.sbt 中使用 net.databinder.dispatch %% dispatch-core % 0.11.2

scala> import dispatch.Defaults._
scala> import dispatch._
scala> import scala.concurrent.Await
scala> import scala.concurrent.duration._

scala>   def fetchUrl( uri : String ) : Array[Byte] = {
     |     val svc = url(uri)
     |     val future_img = Http(svc OK as.Bytes)
     |     Await.result(future_img, Duration(10, "seconds"))
     |
     |     future_img()
     |   }
fetchUrl: (uri: String)Array[Byte]

scala> fetchUrl("https://scontent-syd2-1.xx.fbcdn.net/v/t1.0-1/p200x200/12347856_10153070551591710_2899469599397194349_n.jpg?_nc_cat=105&_nc_sid=dbb9e7&_nc_ohc=1wqEuhGf4S4AX_iqRx5&_nc_ht=scontent-syd2-1.xx&tp=6&oh=4a792c1f0f4eded4ff2516efdfb056ab&oe=5F8D2DC4")

拋出關於無效 ss/tls 記錄的異常

21:08:00.295 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Unexpected I/O exception on channel [id: 0xa80fd837, /10.0.0.16:59254 => scontent-syd2-1.xx.fbcdn.net/157.240.8.23:443]
org.jboss.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record: 

如果我將 https 更改為 http 則它可以工作。 此外,如果我將 URI 粘貼到瀏覽器地址欄中,它將作為 https 工作並報告證書有效。

scala> fetchUrl("http://scontent-syd2-1.xx.fbcdn.net/v/t1.0-1/p200x200/12347856_10153070551591710_2899469599397194349_n.
jpg?_nc_cat=105&_nc_sid=dbb9e7&_nc_ohc=1wqEuhGf4S4AX_iqRx5&_nc_ht=scontent-syd2-1.xx&tp=6&oh=4a792c1f0f4eded4ff2516efdfb
056ab&oe=5F8D2DC4")

scala> fetchUrl("http://scontent-syd2-1.xx.fbcdn.net/v/t1.0-1/p200x200/12347856_10153070551591710_2899469599397194349_n.
jpg?_nc_cat=105&_nc_sid=dbb9e7&_nc_ohc=1wqEuhGf4S4AX_iqRx5&_nc_ht=scontent-syd2-1.xx&tp=6&oh=4a792c1f0f4eded4ff2516efdfb
056ab&oe=5F8D2DC4")

056ab&oe=5F8D221:08:53.263 [New I/O worker #3] DEBUG c.n.h.c.p.netty.NettyConnectionsPool - Adding uri: http://scontent-syd2-1.xx.fbcdn.net:80 for channel [id: 0xa499e1d5, /10.0.0.16:59341 => scontent-syd2-1.xx.fbcdn.net/157.240.8.23:80]
res1: Array[Byte] = Array(-1, -40, -1, -32, 0, 16, 74, 70, 73, 70, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, -1, -19, 0, -100, 80, 104, 111, 116, 111, 115, 104, 111, 112, 32, 51, 46, 48, 0, 56, 66, 73, 77, 4, 4, 0, 0, 0, 0, 0, -128, 28, 2, 103, 0, 20, 107, 111, 56, 50, 105, 103, 81, 77, 53, 57, 85, 55, 103, 73, 72, 45, 110, 119, 106, 75, 28, 2, 40, 0, 98, 70, 66, 77, 68, 48, 97, 48, 48, 48, 97, 56, 56, 48, 49, 48, 48, 48, 48, 99, 55, 48, 52, 48, 48, 48, 48, 102, 52, 48, 97, 48, 48, 48, 48, 49, 98, 48, 99, 48, 48, 48, 48, 53, 102, 48, 100, 48, 48, 48, 48, 57, 99, 49, 52, 48, 48, 48, 48, 99, 56, 49, 100, 48, 48, 48, 48, 55, 57, 49, 101, 48, 48, 48, 48, 98, 101, 49, 102, 48, 48, 48, 48, 49, 49, 50, 49, 48, 48, 48, 48, 54, 97, 51, 48, 48, 48, 48, 48, -1, -37, 0, 67, 0, 6, 4, 5, 6, 5, 4, 6, 6, 5, 6, 7, ...

我的 build.sbt 也引入了 0.8.10 的 dispatch-core。 我仍然有問題,但會發布另一個問題。 刪除對 0.8.10 的依賴解決了 ssl 問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM