Skip to content

URLConnection works fine but ktor client returns 403 forbidden during a get request #1994

Open
@dylech30th

Description

@dylech30th

I'm using ktor 1.3.2 with CIO engine, when I try to send a get request to URL https://1.0.0.1/dns-query?ct=application/dns-json&cd=false&do=false&type=A&name=google.com by the following code:

suspend fun requestJson(hostname: String): DnsResponse {
            HttpClient(CIO) {
                install(JsonFeature) {
                    serializer = KotlinxSerializer()
                }
                install(HttpTimeout)
            }.use {
                return withContext(Dispatchers.IO) {
                    it.get<DnsResponse>("https://1.0.0.1/dns-query?ct=application/dns-json&cd=false&do=false&type=A&name=google.com") {
                        timeout {
                            requestTimeoutMillis = 5000
                        }
                    }
                }
            }
        }

an error occurred with the message Exception in thread "main" io.ktor.client.features.ClientRequestException: Client request(https://1.0.0.1/dns-query?ct=application%2Fdns-json&cd=false&do=false&type=A&name=google.com) invalid: 403 Forbidden, but when I try to access this URL by using a browser or postman or even using the old-school URLConnection in java, it works fine and returns the correct response, for example, the code

val url = URL("https://1.0.0.1/dns-query?ct=application/dns-json&cd=false&do=false&type=A&name=google.com")
    val conn = url.openConnection() as HttpURLConnection
    conn.connect()
    val bf = BufferedReader(InputStreamReader(conn.inputStream))
    var line: String = ""
    while (bf.readLine().let { if (it == null) false else {line += it; true} }) {

    }
    println(line)

will print

{"Status":0,"TC":false,"RD":true,"RA":true,"AD":false,"CD":true,"Question":[{"name":"google.com","type":1}],"Answer":[{"name":"google.com","type":1,"TTL":59,"data":"172.217.5.78"}]}

and everything looks fine

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions