Akka HTTP - 如何获取原始(不是URL解码)请求URL?

时间:2017-11-15 16:25:47

标签: http http-headers akka akka-http

我正在使用Akka HTTP并发出以下HTTP请求:

http://www.example.com?p1=1&p2=2&p3=http://www.example.net?a=1&b=2%203

Akka HTTP中是否有办法获取完整的原始(不是URL解码)请求URL?我想获得完整的原始请求URL,因为它是

http://www.example.com?p1=1&p2=2&p3=http://www.example.net?a=1&b=2%203

解析它并在" p3 ="。

之后获取所有内容

1 个答案:

答案 0 :(得分:2)

启用akka.http.server.raw-request-uri-header配置设置,原始请求URI将作为名为Raw-Request-URI的标头的值包含在内。

换句话说,在application.conf中,设置以下内容:

akka.http.server.raw-request-uri-header = on

然后从Raw-Request-URI标头获取原始请求URI。

来自documentation

  

有时可能需要获取传入URI的“原始”值,而不应用任何转义或解析。虽然这个用例很少见,但每隔一段时间就出现一次。通过打开akka.http.server.raw-request-uri-header标志,可以在Akka HTTP Server端获取“原始”请求URI。启用后,每个请求都会添加Raw-Request-URI标头。此标头将保留使用的原始原始请求的URI。有关示例,请检查参考配置。