|
|
|
|
@ -0,0 +1,84 @@
|
|
|
|
|
package com.example.okhttpmock.mock
|
|
|
|
|
|
|
|
|
|
import kotlinx.coroutines.delay
|
|
|
|
|
import okhttp3.Headers
|
|
|
|
|
import okhttp3.Interceptor
|
|
|
|
|
import okhttp3.MediaType.Companion.toMediaType
|
|
|
|
|
import okhttp3.Protocol
|
|
|
|
|
import okhttp3.Response
|
|
|
|
|
import okhttp3.ResponseBody.Companion.toResponseBody
|
|
|
|
|
import org.json.JSONObject
|
|
|
|
|
import kotlin.collections.iterator
|
|
|
|
|
|
|
|
|
|
class MockResponseInterceptor : Interceptor {
|
|
|
|
|
|
|
|
|
|
override fun intercept(chain: Interceptor.Chain): Response {
|
|
|
|
|
val url = chain.request().url.toUrl()
|
|
|
|
|
val path = url.path
|
|
|
|
|
val build = Response.Builder()
|
|
|
|
|
.protocol(Protocol.HTTP_1_1)
|
|
|
|
|
.code(200)
|
|
|
|
|
.message("OK")
|
|
|
|
|
.request(chain.request())
|
|
|
|
|
|
|
|
|
|
when(path) {
|
|
|
|
|
"/VasDigimobility/KorrectPredict-24-No-23410220000025836-web" -> {
|
|
|
|
|
// {\"Keep-Alive\":[\"timeout=5, max=1000\"],\"Transfer-Encoding\":[\"chunked\"],\"X-Cache\":[\"MISS\"],\"Http-Cost\":[\"1023\"],\"Access-Control-Allow-Origin\":[\"*\"],\"Connection\":[\"Keep-Alive\"],\"Referer\":[\"https:\\/\\/campaignmngr.online\\/tracking\\/?target=84&src=ANGLEMEDIA&click_id=a1133o11913u723501580741246976\"],\"X-Android-Received-Millis\":[\"1763437020425\"],\"Date\":[\"Tue, 18 Nov 2025 03:37:01 GMT\"],\"Via\":[\"1.1 ngmtn1-varnish-65c8f4f546-pt4l9 (Varnish\\/7.4)\"],\"Accept-Ranges\":[\"bytes\"],\"X-Frame-Options\":[\"DENY\"],\"X-Android-Selected-Protocol\":[\"http\\/1.1\"],\"X-Varnish\":[\"61372577093\"],\"Strict-Transport-Security\":[\"max-age=0; includeSubDomains\"],\"Cache-Control\":[\"no-cache, private\"],\"X-Android-Response-Source\":[\"NETWORK 200\"],\"Set-Cookie\":[\"_ga=GA1.2.4951392835.1763437021; expires=Sun, 17 May 2026 03:37:01 GMT; Max-Age=15552000; path=\\/; HttpOnly\",\"ng_session=eyJpdiI6IjNwQ1FKeGZsanhpeFpOVVNURmhXT0E9PSIsInZhbHVlIjoiSHRTLzZGNC8zR0lXUXZXZ2tycEZFYURieTZaMXJvOFdWaWhDTWNCK284aTJZa0FpejA5ZEhKazI2MW9xWXdlamxHT2VaV2JVQzZHN3pwWkVQM2VPYldPZEoxWExwU0FxVDF3a1d1L0ExTURKOWFrL01VMWx2N3ZXdW5TTHVZd08iLCJtYWMiOiI3OTM2ZWI4ODBkMDNhOWM2MDVmZTBkZTFkODkwMGMzOTUxOGNmNzQzNzhmMjM5MTEzZjAwMTJiNGIwYjRlNGYzIiwidGFnIjoiIn0%3D; expires=Tue, 18 Nov 2025 09:37:01 GMT; Max-Age=21600; path=\\/; httponly; samesite=lax\",\"ctxid=eyJpdiI6ImdKVUNheFFRcSswR29xaTBBbmU0T1E9PSIsInZhbHVlIjoiRzlkOEI0aGxYUEJ6d3pHNC9tOXVxYlZMaWhqTkJzOHN1dFZxNXRkU1JvbVkxaWZpdVpkZGIyVFg4eWoyQ3JVNGN0UHVxempWc3MrUXFNZU1mNTFmMzRYQVlVc3g1SlduQVliSmpxcUVWWFk9IiwibWFjIjoiOWE3YWM2ODQyYTZiNGQ5Njk0ZmQzNWI1NTkyYzU2MWFiMGYyNzRlMTBjZDdhMDUwMDEwZWQ3ZTY2MDc0NjIwMyIsInRhZyI6IiJ9; expires=Fri, 16 Nov 2035 03:37:01 GMT; Max-Age=315360000; path=\\/; httponly; samesite=lax\",\"rd=deleted; expires=Mon, 18 Nov 2024 03:37:00 GMT; Max-Age=0; path=\\/; httponly; samesite=lax\",\"userSessionID=eyJpdiI6IkNMK1ZIOTBYSExqNlhsb01lVUd6N0E9PSIsInZhbHVlIjoia1o3QUc1QVpqNWczTE1TYy9HWkdlTW9QWVZSRHc0LytuMDlDV3ppMDdxbU1Dd2pqVmcwblQ5aGY5Y2RvclNOck10cnpUSkpQR0xLZzZZSE4vKzIzQ0t0eWQ1NHdZWWRadHBLYWFRMGFobHc9IiwibWFjIjoiODg0YjdmNjQwOWM1NzY4NWYwYWUwYzE5MmMxMGMyM2Q1NTdjOTU4NTJkMTQwODdiYzI4YmNkYjk1MDc1ZjVhNSIsInRhZyI6IiJ9; expires=Tue, 18 Nov 2025 04:07:01 GMT; Max-Age=1800; path=\\/; httponly; samesite=lax\",\"userPermID=eyJpdiI6InI1QTRoMEFXdC9CSkE4Sk5SeGtmSFE9PSIsInZhbHVlIjoiTFk2cDcyK0MxVGdkSDB2cGJ6WnBPeTJsaDFsamdmNG14cEZHL3JVUzUvRWszcGExQmhFM2FrNm1yaCtBUHloRHJ1L2c4Tk16NHF1UzBrQTlWWDJoRjBuQTZ1RmxFQWwyWXdzREorMUhUbnc9IiwibWFjIjoiMjNmNDZiY2NmNGU2ZjJjZTUzYmMzZDdmYmIwODdlOTkzM2RhOTVjMThhNGM1YzgyMDVjOWI0ZThmOTgyZWY0MiIsInRhZyI6IiJ9; expires=Fri, 16 Nov 2035 03:37:01 GMT; Max-Age=315360000; path=\\/; httponly; samesite=lax\",\"TS01e2a186=01b02e3e897d2dd37070014d269e1696f12e6a20698ebdb03130920da2e85d8d8117b386c9ad404ea8b68799a0c8dee69eb3e69498; Path=\\/; Domain=.ng-app.com;\"],\"Vary\":[\"Accept-Encoding\"],\"X-Android-Sent-Millis\":[\"1763437019808\"],\"Age\":[\"0\"],\"Content-Type\":[\"text\\/html; charset=UTF-8\"]}
|
|
|
|
|
val headers = parseHeader("""
|
|
|
|
|
{\"accept-ranges\":[\"bytes\"],\"access-control-allow-origin\":[\"*\"],\"age\":[\"0\"],\"cache-control\":[\"no-cache, private\"],\"connection\":[\"Keep-Alive\"],\"content-type\":[\"text\\/html; charset=UTF-8\"],\"date\":[\"Tue, 18 Nov 2025 00:29:46 GMT\"],\"keep-alive\":[\"timeout=5, max=1000\"],\"set-cookie\":[\"_ga=GA1.2.1967424388.1763425786; expires=Sun, 17 May 2026 00:29:46 GMT; Max-Age=15552000; path=\\/; HttpOnly\",\"ng_session=eyJpdiI6IitQckdGUnJQbGxnaGpEcHdPL0RUMWc9PSIsInZhbHVlIjoiMDlMYWFPc2xJRUx1SmJBYWdXOUdjckE3Z0dCaUtwV3dtVjdxTGkvR0F0cUkvZ2dTbGhLUjJidGxFeDkvNVdLaEN3bEd6Vy80NGJhMWRFYllqUUtIRWhFeXJuUEdiN0RsRW9aMVA2cHhoRWZ0UkwrNUJNQ0FiNktjSGVBeWM4cnkiLCJtYWMiOiIyMTc1YjBjYjkzYjU4ZWZjMTY3MGEwNWU3YzBlNDVkNGY4NDk5ZjVlZmM1YjMzNTc4Y2ZiZjhlZmMyNWM2NTBjIiwidGFnIjoiIn0%3D; expires=Tue, 18 Nov 2025 06:29:47 GMT; Max-Age=21600; path=\\/; httponly; samesite=lax\",\"ctxid=eyJpdiI6Ik5yd0pBbm9OcjUvTEtHYWNnU1I0dGc9PSIsInZhbHVlIjoicU5uL3pjL295aE5rUFVCUVN1VjNHZjk5WmJjU2tXN2N5Q1JtVW9mMEw1SHRaMTJpa0dHZ0hzUitQTERQK0ZDdGlaeEdPbCtGNkRsR3BIcjhySStjeUVnWUNQazNIR1pXVE9aSERxcGNNUzA9IiwibWFjIjoiNjQwNDlmNGRhMTFiODMxNzkyZWUxN2FjMjNlYjY5YWRjOThjM2I2NDA4NDFmNjRhOGVlNDcxYjY5M2NjMzhkYSIsInRhZyI6IiJ9; expires=Fri, 16 Nov 2035 00:29:46 GMT; Max-Age=315359999; path=\\/; httponly; samesite=lax\",\"rd=deleted; expires=Mon, 18 Nov 2024 00:29:46 GMT; Max-Age=0; path=\\/; httponly; samesite=lax\",\"userSessionID=eyJpdiI6IllGRTduYm95TVJIeHY2SWE0WlowWFE9PSIsInZhbHVlIjoib29nNk5sdUg4L0g5dXdPUEFvclJleDlCMFJMalIxTEtsdjAzazN2eGVLM0E4cHp1dHU5bkg5bmwrcGl4Wkx0R1N5SWw4MUFmQXVGZVVhR1NtMVc0SWNtOGw0RzBQSElSd0tNb2x5TzF0dVU9IiwibWFjIjoiZWE2NmU4NzFhYjQ3YmZjZGNmNTUxM2M0Y2UwNzg0MmVjMmJmNDFhNTI0OGQ0YTk4N2U1NTc2NzcxYzc3MjdlMCIsInRhZyI6IiJ9; expires=Tue, 18 Nov 2025 00:59:46 GMT; Max-Age=1799; path=\\/; httponly; samesite=lax\",\"userPermID=eyJpdiI6Im1vQkJMUkFEUkd0WDRxbWc2VmE0QkE9PSIsInZhbHVlIjoiRWpQSWMza3F1ZlhWaFQ3NXNPVks0czNXSmdHOUsyZnd1ay9CdEErc2FQRGVlWHdFck5ObjhNT3kxYUYxU0NTZWUvRm5OZmhhNHovRFp4eEs0V0VXMWVGL0Y3aURIdXcva0dwU2J4c2hseDg9IiwibWFjIjoiNWZkNzljNGU4YmU4NjM5NzMyNTFlM2NjNTlkY2E3ZTlmYjFiM2I3Y2U0ZmViNDQwZDc0MmRlZjAwY2Y3N2Y0ZCIsInRhZyI6IiJ9; expires=Fri, 16 Nov 2035 00:29:46 GMT; Max-Age=315359999; path=\\/; httponly; samesite=lax\",\"TS01e2a186=01b02e3e8981bf74a1f512f4b0670461807efcf8a8b2f4a37655a07262210e12365df7598bbe19c34428020d816188384f8391634e; Path=\\/; Domain=.ng-app.com;\"],\"strict-transport-security\":[\"max-age=0; includeSubDomains\"],\"transfer-encoding\":[\"chunked\"],\"vary\":[\"Accept-Encoding\"],\"via\":[\"1.1 ngmtn1-varnish-65c8f4f546-xqcgq (Varnish\\/7.4)\"],\"x-cache\":[\"MISS\"],\"x-frame-options\":[\"DENY\"],\"x-varnish\":[\"61206562170\"],\"Referer\":[\"https:\\/\\/campaignmngr.online\\/tracking\\/?target=84&src=ANGLEMEDIA&click_id=a1042o11913u723454463955959808\"]}
|
|
|
|
|
""".trimIndent().replace("\\", ""))
|
|
|
|
|
build
|
|
|
|
|
.addHeader(headers)
|
|
|
|
|
.body("Success".toResponseBody("text/plain".toMediaType()))
|
|
|
|
|
}
|
|
|
|
|
"/VasDigimobility/handle" -> {
|
|
|
|
|
// {\"Access-Control-Allow-Origin\":[\"*\"],\"Age\":[\"0\"],\"Cache-Control\":[\"no-cache, private\"],\"Connection\":[\"Keep-Alive\"],\"Content-Type\":[\"text\\/html; charset=utf-8\"],\"Date\":[\"Tue, 18 Nov 2025 03:37:07 GMT\"],\"Keep-Alive\":[\"timeout=5, max=1000\"],\"Location\":[\"http:\\/\\/ng-app.com\\/VasDigimobility\\/korrectpredict-24-no-23410220000025836-confirm?confirm=1&trfsrc=Mobidea&trxId=ffb4ced5-8664-4c7e-b14c-390f68b72fd1&permID=13b33fdb-e261-4ea9-b8fc-d68b03dc55fd_ed203603-fe78-4045-a3f5-6de71ea1f8c5\"],\"Set-Cookie\":[\"ng_session=eyJpdiI6IjBxU2lnTXo3Q1JEeGh5S3ZNV1pOaEE9PSIsInZhbHVlIjoiWnc4OFozQnhlOEYzcmxsODkrUERvekM2WFZQTE1CTFI3NmZ3cTl6UW1saDFxVlY0YzFUMlRXdmlad3FWeGtWYVdrRG1SQzJIalc0RzN3Qnp5KzJXeW5rUXBSMGR0L3ZYcDdzZkhjZU5xY1JYNzQ5b1lkTTc3R1pKbWNFN1RrNHoiLCJtYWMiOiIzNjMxMzUzYzU3ZDQwZjM4MzYwZWQ4NGZiYzFmNThiZGM0NzMxM2ZhOGE1YTEwMzdhMjM4Yjg1YTY1NWIxMDllIiwidGFnIjoiIn0%3D; expires=Tue, 18 Nov 2025 09:37:07 GMT; Max-Age=21600; path=\\/; httponly; samesite=lax\",\"userPermID=eyJpdiI6IjNoclkzOW04K1dUT2p5SHpSaWZyc0E9PSIsInZhbHVlIjoiV3hXa1NyRFMzbEdzbGxPU2dhdU4zVjBkSndCYXJZeTNnallnQWNBZmNPWUVXRW13dThXb2VyaFYzaGdBTTl5YjNhcG5SRlZjSE1ZRFRRRENMQUdkbGNmZEhzaHVvTmlUV1FWRjdOS283Ymc9IiwibWFjIjoiMTVmZTRkNzI4ZDc2OWNkY2ViNzZlZmMxMTgzZDViZWMwYmZiMGNlMTQzMmYzMzQ3N2Q4MGNmZjZiNmExMzhkNCIsInRhZyI6IiJ9; expires=Fri, 16 Nov 2035 03:37:07 GMT; Max-Age=315360000; path=\\/; httponly; samesite=lax\",\"userSessionID=eyJpdiI6Ilp3TkRQTkRPUFR5bko1M09kVEVyRmc9PSIsInZhbHVlIjoic0VGSUtDdHNlZTRuNFRIZDZqbFpXZU1vaFZ6VENwU2pRYTJhWG16Z0FIWDl0Y2pRNjF0eFhGNGNZM05WeW1FNW5nK2RuQ0YrWEN0U3VDbTg3TXM1TS9HOHVVYWtVaG1qc2ptOG53eFZsLzg9IiwibWFjIjoiMjllMGJhZjFhYWQ3ZmRiYWRiZWUyNjNhMDIwOWJlOWJiNTI3MWQwN2IwNGNlOTM3MTEwNzhjZDVhZjg2YmQ0YSIsInRhZyI6IiJ9; expires=Tue, 18 Nov 2025 04:07:07 GMT; Max-Age=1800; path=\\/; httponly; samesite=lax\",\"TS01e2a186=01b02e3e897d2dd37070014d269e1696f12e6a20698ebdb03130920da2e85d8d8117b386c9ad404ea8b68799a0c8dee69eb3e69498; Path=\\/; Domain=.ng-app.com;\"],\"Transfer-Encoding\":[\"chunked\"],\"Via\":[\"1.1 ngmtn1-varnish-65c8f4f546-pt4l9 (Varnish\\/7.4)\"],\"X-Android-Received-Millis\":[\"1763437026156\"],\"X-Android-Response-Source\":[\"NETWORK 302\"],\"X-Android-Selected-Protocol\":[\"http\\/1.1\"],\"X-Android-Sent-Millis\":[\"1763437025746\"],\"X-Cache\":[\"MISS\"],\"X-Varnish\":[\"61371906349\"]}
|
|
|
|
|
val headers = parseHeader("""
|
|
|
|
|
{\"access-control-allow-origin\":[\"*\"],\"age\":[\"0\"],\"cache-control\":[\"no-cache, private\"],\"connection\":[\"Keep-Alive\"],\"content-type\":[\"text\\/html; charset=utf-8\"],\"date\":[\"Tue, 18 Nov 2025 00:29:52 GMT\"],\"keep-alive\":[\"timeout=5, max=1000\"],\"location\":[\"http:\\/\\/ng-app.com\\/VasDigimobility\\/korrectpredict-24-no-23410220000025836-error?code=504\"],\"set-cookie\":[\"_ga=GA1.2.6808494602.1763425792; expires=Sun, 17 May 2026 00:29:52 GMT; Max-Age=15552000; path=\\/; HttpOnly\",\"TS01e2a186=01b02e3e89eb0ad1889d48b667bc9ff19cb4894294f6272ac6e4965a63a9621114361bb80b9c06559140fd2cf3e837ae2e6a2ad33e; Path=\\/; Domain=.ng-app.com;\"],\"transfer-encoding\":[\"chunked\"],\"via\":[\"1.1 ngmtn1-varnish-65c8f4f546-pt4l9 (Varnish\\/7.4)\"],\"x-cache\":[\"MISS\"],\"x-varnish\":[\"61370999051\"]}
|
|
|
|
|
""".trimIndent().replace("\\", ""))
|
|
|
|
|
build
|
|
|
|
|
.addHeader(headers)
|
|
|
|
|
.code(302)
|
|
|
|
|
.message("Found")
|
|
|
|
|
.body("redirects : http://ng-app.com/VasDigimobility/korrectpredict-24-no-23410220000025836-confirm?confirm=1&trfsrc=Mobidea&trxId=ffb4ced5-8664-4c7e-b14c-390f68b72fd1&permID=13b33fdb-e261-4ea9-b8fc-d68b03dc55fd_ed203603-fe78-4045-a3f5-6de71ea1f8c5".toResponseBody("text/plain".toMediaType()),)
|
|
|
|
|
}
|
|
|
|
|
"/VasDigimobility/korrectpredict-24-no-23410220000025836-confirm/ajax/autorenewal" -> {
|
|
|
|
|
val headers = parseHeader("""
|
|
|
|
|
{\"Keep-Alive\":[\"timeout=5, max=998\"],\"Transfer-Encoding\":[\"chunked\"],\"X-Cache\":[\"MISS\"],\"Http-Cost\":[\"258\"],\"Access-Control-Allow-Origin\":[\"*\"],\"Connection\":[\"Keep-Alive\"],\"X-Android-Received-Millis\":[\"1763437027194\"],\"Date\":[\"Tue, 18 Nov 2025 03:37:08 GMT\"],\"Via\":[\"1.1 ngmtn1-varnish-65c8f4f546-xqcgq (Varnish\\/7.4)\"],\"X-Android-Selected-Protocol\":[\"http\\/1.1\"],\"X-Varnish\":[\"61209288972\"],\"Cache-Control\":[\"no-cache, private\"],\"X-Android-Response-Source\":[\"NETWORK 200\"],\"Set-Cookie\":[\"ng_session=eyJpdiI6IkNXZTA5T0g0eXUvTG5VREtJKzFTdFE9PSIsInZhbHVlIjoiOUZzZy91aU1ac1Z4ZkFlVjJweENMWkdzMnlvRVh1ZVp1MWd3ZG0wQkk1MTRoWklPNmRCMlQ2VTZrZCtpMHQxT0cxVm9BTlVwM3BvcitEVDVQd28waTM3NmpTeTR6VXFSSVlRVmJOd0M1cC81ajNFQ1J0dXFOd0NUL2hGVTlmbEUiLCJtYWMiOiI0NDk4NmJlMGZhNjA1Mzk4YTI2MjkyMTRlMmJiOTcwNjhiOGU5OGNjZGEyYWZjMTA2MzY5ZTcxMjNmMGVhMmJmIiwidGFnIjoiIn0%3D; expires=Tue, 18 Nov 2025 09:37:08 GMT; Max-Age=21600; path=\\/; httponly; samesite=lax\",\"userPermID=eyJpdiI6IllRYW51cUpMNHAwOUdsckZ5SDBoWkE9PSIsInZhbHVlIjoiNFIvK05FTm84TWdKUndGSzNFQnVXcDg5enVwVllhbHdYR3ZsK3UyS3p3cjFEWVMvMjZmL1VNVzIxMCtrRXVQL3Rla203R2wxSkplb1owUHJ2bzlXa3FnQUtFUG9LUzNCUExWWCtKNHFqQ2c9IiwibWFjIjoiYzI2NzEyMWNiZTg5NzNhYTc2OTg0YWFiZjY0YzE2MGU2NGNjOGM0YTAxNGI2MTRlNWNiNjVhNDIwZjdjYzMyZiIsInRhZyI6IiJ9; expires=Fri, 16 Nov 2035 03:37:08 GMT; Max-Age=315360000; path=\\/; httponly; samesite=lax\",\"userSessionID=eyJpdiI6IlFyczZoQ0RJcUxVNGtzQ09jNSs5blE9PSIsInZhbHVlIjoiSVhhTEwxMkdtY2hxTy9NVDJsNzFwZURWQy9mQTdyeWFlMklLV2RoNFc1NEMwYlhJLzd5QmRWc3hlSW01MEp1cS9nNmNQTlFYcjNIYjdPanNSUUx5eENwaDVwdi80SDhrWStBdlczR3RNUEk9IiwibWFjIjoiOGI1MTlhNTQ0Nzk3ZDg3ZTg3NjZkNjdhZWY0Mjg2ZTE2ZDc5ZGUxZGQ3ZGRlYzIyMDA5OTQyNWQzYTgzYjNhYiIsInRhZyI6IiJ9; expires=Tue, 18 Nov 2025 04:07:08 GMT; Max-Age=1800; path=\\/; httponly; samesite=lax\",\"TS01e2a186=01b02e3e897d2dd37070014d269e1696f12e6a20698ebdb03130920da2e85d8d8117b386c9ad404ea8b68799a0c8dee69eb3e69498; Path=\\/; Domain=.ng-app.com;\"],\"Vary\":[\"Accept-Encoding\"],\"X-Android-Sent-Millis\":[\"1763437026942\"],\"Age\":[\"0\"],\"Content-Type\":[\"application\\/json\"]}
|
|
|
|
|
""".trimIndent().replace("\\", ""))
|
|
|
|
|
build
|
|
|
|
|
.addHeader(headers)
|
|
|
|
|
.code(200)
|
|
|
|
|
.message("OK")
|
|
|
|
|
.body("OK".toResponseBody("text/plain".toMediaType()))
|
|
|
|
|
}
|
|
|
|
|
else ->
|
|
|
|
|
build.body("OK".toResponseBody("text/plain".toMediaType()))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return build.build()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun parseHeader(header:String): Map<String, List<String>> {
|
|
|
|
|
val result: MutableMap<String, List<String>> = mutableMapOf()
|
|
|
|
|
val json = JSONObject(header)
|
|
|
|
|
for(key in json.keys()) {
|
|
|
|
|
val jsonArray = json.getJSONArray(key)
|
|
|
|
|
val list = mutableListOf<String>()
|
|
|
|
|
repeat(jsonArray.length()){ index ->
|
|
|
|
|
list += jsonArray.getString(index)
|
|
|
|
|
}
|
|
|
|
|
result[key] = list
|
|
|
|
|
}
|
|
|
|
|
return result
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun Response.Builder.addHeader(headers: Map<String, List<String>>): Response.Builder {
|
|
|
|
|
for (keyValue in headers) {
|
|
|
|
|
for (value in keyValue.value) {
|
|
|
|
|
this.addHeader(keyValue.key, value)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return this
|
|
|
|
|
}
|
|
|
|
|
}
|