Razvan
10/12/2020, 3:54 PMapp.asServer(ApacheServer(8080))
accessing from <http://localhost:8080>
no problem, but trying using the loopback ip 127.0.0.1
or 0.0.0.0
didn't work.
➜ curl --verbose <http://127.0.0.1:8080>
* Trying 127.0.0.1:8080...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 400 Bad Request
< Connection: close
< Date: Mon, 12 Oct 2020 13:36:26 GMT
< Server: Apache-HttpCore/5.0.2 (Java/11.0.8)
< Content-Length: 17
< Content-Type: text/plain; charset=ISO-8859-1
<
* Closing connection 0
Not authoritative%
I tried specify the address to the server app.asServer(ApacheServer(8080, InetAddress.getByName("0.0.0.0")))
but no luck either.
Finally gave up and move to Jetty which worked as a charm, but still wanting to know if you have an explanation or a configuration that should work with Apache.
Thanks.@Test
fun ApacheServerTest() {
val app: HttpHandler = {r: Request -> Response(OK).body(r.body) }
app.asServer(ApacheServer(8000)).start()
val cli: HttpHandler = OkHttp()
val responseLocalHost = cli(Request(Method.GET, "<http://localhost:8000>")).body("from Localhost")
println("Localhost: $responseLocalHost")
val response127 = cli(Request(Method.GET, "<http://127.0.0.1:8000>")).body("from 127.0.0.1")
println("127.0.0.1: $response127")
val response0 = cli(Request(Method.GET, "<http://0.0.0.0:8000>")).body("from 0.0.0.0")
println("0.0.0.0: $response0")
responseLocalHost.status shouldBe OK
response127.status shouldBe OK
response0.status shouldBe OK
}
And the one setting the ip to 127.0.0.1 and still only working for localhost
only:
@Test
fun ApacheServerTestForcingLocalHost() {
val app: HttpHandler = {r: Request -> Response(OK).body(r.body) }
val apache = ApacheServer(8000, InetAddress.getLoopbackAddress())
app.asServer(apache).start()
println("Server started: http://${apache.address}:${apache.port}")
val cli: HttpHandler = OkHttp()
val responseLocalHost = cli(Request(Method.GET, "<http://localhost:8000>")).body("from Localhost")
println("Localhost: $responseLocalHost")
val response127 = cli(Request(Method.GET, "<http://127.0.0.1:8000>")).body("from 127.0.0.1")
println("127.0.0.1: $response127")
val response0 = cli(Request(Method.GET, "<http://0.0.0.0:8000>")).body("from 0.0.0.0")
println("0.0.0.0: $response0")
responseLocalHost.status shouldBe OK
response127.status shouldBe OK
response0.status shouldBe OK
}
Saša Šijak
10/12/2020, 4:50 PMRazvan
10/12/2020, 5:46 PM