我目前正在将所有Rest测试移动到CI服务器,并注意到由于SSL握手导致所有测试都失败,现在我已经使用我们的Java测试套件成功禁用了TrustManager,但是我不确定如何使用Scala调度库,并且无法找到许多可以应用于此场景的示例。
val JSONstr = "{samplekey:samplevalue}"
val response:String = Http(url("https://www.host.com/path/to/post")
<< (checkInJSONstr, "application/json") as_str)
出现以下异常:
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
...
有没有办法在语法上用调度库干净地忽略SSL?
答案 0 :(得分:6)
import dispatch._
val http = new Http with HttpsLeniency
val response:String = http(url("https://www.host.com/path/to/post")
<< (checkInJSONstr, "application/json") as_str)
答案 1 :(得分:0)
viktortnk的答案不再适用于最新版本的Dispatch(0.13.2)。对于最新版本,您可以使用以下内容创建一个接受任何证书的http客户端:
val myHttp = Http.withConfiguration(config => config.setAcceptAnyCertificate(true))
然后你可以将它用于这样的GET请求:
myHttp(url("https://www.host.com/path").GET OK as.String)