Search code examples
kotlinktor

how to create a client socket with proxy(http or socks) in Ktor


java socket set proxy

val proxy = Proxy(Proxy.Type.SOCKS, InetSocketAddress("127.0.0.1", 8000))
val socket: Socket = Socket(proxy)
val address = InetSocketAddress("127.0.0.1", 9002)
socket.connect(address, 3000)

I checked the documentation but couldn't find how to set up a proxy

val selectorManager = SelectorManager(Dispatchers.IO)
val socket = aSocket(selectorManager).tcp().connect("127.0.0.1", 9002)

Add proxy configuration to TCPClientSocketOptions if allowed

val selectorManager = SelectorManager(Dispatchers.IO)
val socket = aSocket(selectorManager).tcp().connect("127.0.0.1", 9002, ){
    proxy = Proxy(Proxy.Type.SOCKS, InetSocketAddress("127.0.0.1", 8000))
}

Solution

  • Unfortunately, there are no plans yet to implement this feature request.