|
1 | 1 | package tech.httptoolkit.pinning_demo
|
2 | 2 |
|
3 | 3 | import android.graphics.drawable.Drawable
|
| 4 | +import android.net.http.SslError |
4 | 5 | import android.os.Bundle
|
5 | 6 | import android.view.View
|
| 7 | +import android.webkit.SslErrorHandler |
| 8 | +import android.webkit.WebView |
| 9 | +import android.webkit.WebViewClient |
6 | 10 | import android.widget.Button
|
7 | 11 | import android.widget.Toast
|
8 | 12 | import androidx.annotation.IdRes
|
@@ -105,6 +109,27 @@ class MainActivity : AppCompatActivity() {
|
105 | 109 | }
|
106 | 110 | }
|
107 | 111 |
|
| 112 | + fun sendUnpinnedWebView(view: View) { |
| 113 | + onStart(R.id.webview_unpinned) |
| 114 | + val webView = WebView(this@MainActivity) |
| 115 | + |
| 116 | + webView.loadUrl("https://sha256.badssl.com") |
| 117 | + webView.webViewClient = object : WebViewClient() { |
| 118 | + override fun onReceivedSslError( |
| 119 | + view: WebView?, |
| 120 | + handler: SslErrorHandler?, |
| 121 | + error: SslError? |
| 122 | + ) { |
| 123 | + onError(R.id.webview_unpinned, error.toString()) |
| 124 | + } |
| 125 | + |
| 126 | + override fun onPageFinished(view: WebView?, url: String?) { |
| 127 | + println("Unpinned WebView loaded OK") |
| 128 | + onSuccess(R.id.webview_unpinned) |
| 129 | + } |
| 130 | + } |
| 131 | + } |
| 132 | + |
108 | 133 | fun sendConfigPinned(view: View) {
|
109 | 134 | GlobalScope.launch(Dispatchers.IO) {
|
110 | 135 | onStart(R.id.config_pinned)
|
@@ -139,7 +164,7 @@ class MainActivity : AppCompatActivity() {
|
139 | 164 | .build()
|
140 | 165 | val request = Request.Builder()
|
141 | 166 | .url("https://sha256.badssl.com")
|
142 |
| - .build(); |
| 167 | + .build() |
143 | 168 |
|
144 | 169 | client.newCall(request).execute().use { response ->
|
145 | 170 | println("URL: ${request.url}")
|
|
0 commit comments