https://kotlinlang.org logo
Join SlackCommunities
Powered by
# chucker
  • p

    pitpit

    03/25/2022, 1:24 PM
    Hi a grey line in chucker activity indicate a request in progress ?
    g
    • 2
    • 1
  • c

    Colton Idle

    03/29/2022, 1:05 PM
    Going out on a limb here, but has anyone in this community found a chucker-like utility but for Firebase's Firestore? I've grown so used to chucker and now im using an app that doesn't use a REST api and im so lost 😭
  • e

    Eddie J

    04/02/2022, 4:18 PM
    Hi team, I’ve found the strange behavior here which seems to be unrelated 😅. I applied Chucker to my project which has the
    ContextWrapper
    to wrap the Resources for mostly the string. My codes on that are like:
    Copy code
    // BaseActivity.java
        @Override
        protected void attachBaseContext(Context newBase) {
            // ResourcesContextWrapper extends from ContextWrapper
            resourcesContextWrapper = ResourcesContextWrapper.wrap(newBase);
            super.attachBaseContext(resourcesContextWrapper);
        }
    ...
    ...
    ...
    
    // In ResourcesContextWrapper.java
    
        private ResourcesWrapper resourcesWrapper;
        
        @Override
        public Resources getResources() {
            return resourcesWrapper == null ? super.getResources() : resourcesWrapper;
        }
    By this code above, when I call:
    Copy code
    getContext().getResources()
    it will return me
    ResourcesWrapper
    Without Chucker or with Chucker-No-op, the wrapper works fine. Calling
    getResources()
    returns me
    ResourcesWrapper
    which is what I need but with Chucker, it keep returning me the default system Resources instead. I’ve tried couple times and still get the same result so I just want to know if it really is unrelated 😅 or somebody has faced this before. Apart from what I mentioned above, every Chucker’s features work fine. Please suggest 🙏
    r
    g
    • 3
    • 4
  • c

    Colton Idle

    04/13/2022, 4:06 AM
    I'm trying to track down an issue where my module is for some reason using an older version of okhttp (3.12.10 instead of 4.9.3). It seems as though chucker 3.5.2 is somehow pulling in okhttp 3.12.10? Edit: Looked at chuckers source. doesn't seem to be using an old version of okhttp. so i guess false alarm?
    v
    • 2
    • 1
  • a

    althaf

    04/13/2022, 6:24 AM
    hi, is GQL integration already done for chucker ? I see and old PR (year 2019) , still not merged however. What is the current status of showing GQL operation name ? https://github.com/ChuckerTeam/chucker/pull/70
    g
    v
    • 3
    • 5
  • a

    althaf

    04/18/2022, 8:19 AM
    I have freshly raise a PR against latest develop, for the GQL implementation. https://github.com/ChuckerTeam/chucker/pull/800 cc : @gammax, @Vova Buberenko Please review. This is not a final PR, however almost ready. Need to get feed back from the chucker team.
    👍 1
  • h

    handstandsam

    04/26/2022, 12:55 PM
    I found potential memory leaks from using Activity context instead of Application Context for
    Toast.makeText(
    , so put up a PR to address: https://github.com/ChuckerTeam/chucker/pull/810
    g
    c
    v
    • 4
    • 3
  • h

    handstandsam

    04/26/2022, 12:56 PM
    set the channel topic: Chucker 3.5.2 is out 🚀 Let’s talk about development of Chucker: https://github.com/ChuckerTeam/chucker
    🎉 1
  • a

    ArjanSM

    07/21/2022, 1:22 PM
    Hi Team, 👋 Big fan of this project. Can anybody help review this PR?
  • p

    psh

    07/21/2022, 3:51 PM
    The data model redesign (https://github.com/ChuckerTeam/chucker/issues/259) seems to be key to a bunch of different initiatives but discussions have stalled there. What can we do to revive the discussion and move the issue forward? Is anyone championing the work? The off-hand mention of KMP (as an example of the industry moving forward) caught my eye, but mostly because my life revolves around KMP (esp database work in that space) 🙂
    ➕ 2
    a
    g
    f
    • 4
    • 4
  • g

    gammax

    07/25/2022, 9:36 PM
    What can we do to revive the discussion and move the issue forward?
    Ideally, we're looking for people to help us out. As of today is just me + @Vova Buberenko doing the work. We're both quite busy that's why reviews are slower then usual. I'm doing this during my free time whenever possible 🙂 If there is anyone who's willing to help us out, that would be great. Otherwise, be patient and, at least from my end, I'd love to land the redesign of the internal model 👍
    👍 2
  • f

    Frank Harper

    09/26/2022, 5:09 PM
    Hi everyone, thank you for Chucker it is such a useful tool!
  • g

    gammax

    09/26/2022, 5:10 PM
    If you’re looking for instructions on how to use the
    develop
    branch, you will find them here: https://github.com/ChuckerTeam/chucker/#snapshots- 👍
    f
    • 2
    • 1
  • c

    Colton Idle

    11/11/2022, 12:45 AM
    Has anyone had any luck setting up chucker with firebase cloud functions?
    g
    • 2
    • 1
  • c

    Colton Idle

    01/31/2023, 6:14 PM
    Planning to use chucker in a greenfield project. But the project uses apollo + graphql. I see that graphql is supported, but as someone that knows almost 0 about apollo. Does it integrate nicely with chucker?
    g
    • 2
    • 1
  • p

    psh

    01/31/2023, 7:15 PM
    I think the obvious part of the equation is that you'll have to configure OkHttp with your Apollo setup, and it will only be capturing Android client traffic, despite Apollo being multiplatform
  • s

    Slackbot

    03/07/2023, 12:16 PM
    This message was deleted.
  • b

    beom

    05/18/2023, 2:26 AM
    Hi team, when I try to get a no-op version from a custom release implementation created by
    configurations.creating
    , I get the following error, can I know why?
    Copy code
    Caused by: org.gradle.internal.resolve.ArtifactNotFoundException: Could not find library-no-op-3.5.2.aar (com.github.chuckerteam.chucker:library-no-op:3.5.2).
    Searched in the following locations:
    <https://jitpack.io/com/github/chuckerteam/chucker/library-no-op/3.5.2/library-no-op-3.5.2.aar>
    at
    ❤️ 1
    ✔️ 1
    e
    • 2
    • 2
  • g

    gammax

    07/03/2023, 3:25 PM
    Hey hey 👋 Happy to share that 4.0.0 is out 🚀 https://github.com/ChuckerTeam/chucker/releases/tag/4.0.0
    🎉 7
    c
    • 2
    • 5
  • g

    gammax

    07/04/2023, 7:59 AM
    set the channel topic: Chucker 4.0.0 is out 🚀 Let’s talk about development of Chucker: https://github.com/ChuckerTeam/chucker
  • c

    Colton Idle

    08/02/2023, 4:11 PM
    https://www.droidcon.com/2023/08/01/use-chucker-to-catch-em-all/
    ❤️ 2
    g
    • 2
    • 2
  • s

    Suraj Sahani

    12/01/2023, 5:28 PM
    Hi, Everyone, I am trying to implement debug version of chucker in my android app.
    _debugImplementation_("com.github.chuckerteam.chucker:library:4.0.0")
    Okhttp
    Copy code
    fun provideHttpClient(context: Context
    ): OkHttpClient {
        val okHttpClientBuilder = OkHttpClient.Builder()
            .addInterceptor(ChuckerInterceptor(context))
        okHttpClientBuilder.addInterceptor(provideLogInterceptor())
    getting this error,
    Can't determine type for tag '<macro name="m3_comp_assist_chip_container_shape">?attr/shapeAppearanceCornerSmall</macro>'
    at run time at the latest version. Manage to run it on older version od Chucker which is
    debugImplementation 'com.github.chuckerteam.chucker:library:3.5.2'
    Even after doing this Not getting an y notification. My Android Level is 13, and already added
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    this to my Android Manifest. Anything else I'm missing here??
    v
    • 2
    • 4
  • a

    Amitesh

    01/10/2024, 7:44 AM
    Is anyone facing this issue while App update Issue found: Missing “isMonitoringTool” flag Due to Chucker Lib ?
    g
    • 2
    • 1
  • m

    miqbaldc

    01/16/2024, 10:50 AM
    is it not possible to show the body request for
    multipart/form-data
    or am i missing something in the setup(?) details in 🧵
    c
    • 2
    • 9
  • c

    Colton Idle

    01/31/2024, 7:33 PM
    I have a network call that in charles shows as a 304. With chucker it shows as a 200. Any way around that so it's clear to see when i encounter a 304?
    p
    g
    • 3
    • 10
  • c

    Colton Idle

    06/05/2024, 7:42 PM
    Not directly chucker... but does anyone know of a chucker-esque library for inspecting a db?
    m
    • 2
    • 1
  • a

    androidexpertmanish

    07/27/2024, 11:12 AM
    Hey, anyone facing chucker main activity toolbar being overlapped with status bar
    c
    • 2
    • 2
  • i

    Ilia Kazantsev

    10/03/2024, 2:07 PM
    Hi everyone, I’ve just submitted a solution for the issue #1237, which was preventing proper use of the
    pathSegments
    filter in Chucker. I’d really appreciate it if you could take a look and provide any feedback, as the fix is quite specific and I’m unsure if it fits the library. Thank you and have a good day.
    ❤️ 1
    g
    • 2
    • 2
  • s

    Swapnil Musale

    11/16/2024, 9:22 AM
    How can I add intercepter after decrypting the encrypted response to show decrypted response in Android Chucker Plugin HttpClient for Ktor
    Copy code
    class AndroidNetworkGateway(
        private val debug: Boolean,
        private val interceptors: List<Interceptor>,
        private val networkInterceptor: List<Interceptor>,
        private val aesEncryptionManager: AesEncryptionManager,
    ) : INetworkGateway {
    
        override val client: HttpClient
            get() = HttpClient(OkHttp) {
                engine {
                    config {
                        callTimeout(30, TimeUnit.SECONDS)
                        connectTimeout(30, TimeUnit.SECONDS)
                        readTimeout(30, TimeUnit.SECONDS)
                        writeTimeout(30, TimeUnit.SECONDS)
                    }
    
                    interceptors.forEach { addInterceptor(it) }
                    networkInterceptor.forEach { addNetworkInterceptor(it) }
                }
    
                install(ContentNegotiation) {
                    json(BaseApi.networkJsonParser)
                }
    
                install(Logging) {
                    level = if (debug) LogLevel.ALL else LogLevel.NONE
                }
    
                install(ApiEncryption) {
                    encryptionManager = aesEncryptionManager
                }
            }
    }
    ApiEncryption
    Copy code
    class ApiEncryption(private val aesEncryptionManager: AesEncryptionManager) {
    
        class Config {
            var encryptionManager: AesEncryptionManager? = null
        }
    
        companion object : HttpClientPlugin<Config, ApiEncryption> {
            override val key: AttributeKey<ApiEncryption> = AttributeKey(name = "ApiEncryption")
    
            override fun prepare(block: Config.() -> Unit): ApiEncryption {
                val config = Config().apply(block)
                val aesEncryptionManager = config.encryptionManager
                    ?: throw IllegalArgumentException("AesEncryptionManager must be provided")
                return ApiEncryption(aesEncryptionManager)
            }
    
            @OptIn(ExperimentalStdlibApi::class, InternalAPI::class)
            override fun install(plugin: ApiEncryption, scope: HttpClient) {
                val aesEncryptionManager = plugin.aesEncryptionManager
    
                // Encrypt API Request
                scope.requestPipeline.intercept(phase = HttpRequestPipeline.Before) {
                    if (this.context.body !is EmptyContent) {
                        val originalRequest = this.context.body.toString()
                        
                        val encryptedRequest =
                            aesEncryptionManager.encrypt(plainText = originalRequest)
                        proceedWith(subject = encryptedRequest)
                    } else {
                        proceed()
                    }
                }
    
                // Decrypt API Response
                scope.responsePipeline.intercept(phase = HttpResponsePipeline.Receive) { (info, body) ->
                    try {
                        val encryptedResponse = this.context.response.content.readUTF8Line()
    
                        if (encryptedResponse?.isEncryptedResponse() == true) {
                            aesEncryptionManager.decrypt(
                                cipherText = encryptedResponse.data?.hexToByteArray()!!,
                                ivByteArray = encryptedResponse.iv?.hexToByteArray()!!,
                            ).also { decryptedResponse ->
                                proceedWith(
                                    subject = HttpResponseContainer(
                                        expectedType = info,
                                        response = buildPacket {
                                            writeText(text = decryptedResponse)
                                        },
                                    ),
                                )
                            }
                        } else {
                            proceedWith(
                                subject = HttpResponseContainer(
                                    expectedType = info,
                                    response = body,
                                ),
                            )
                        }
                    } catch (exception: Exception) {
                        exception.printStackTrace()
                    }
                }
            }
        }
    }
    As of now chucker intercepting a app encrypted request and server encrypted response in Chucker UI. I want to display decrypted response as well (will be available via ktor HttpResponsePipeline.After) Is there any plan to support this feature request? or Any way to do this at this moments
    c
    • 2
    • 2
  • v

    Vlad

    02/18/2025, 11:42 AM
    Hi community 👋 This article writes about how to setup chucker with Ktor. It requires to setup Ktor with OkHttp engine. Is it possible to use Chucker with Ktor CIO engine?
    g
    c
    • 3
    • 5