如何使用Julia的HTTP.WebSockets处理带路径与查询字符串的URL?
处理WebSocket URL的路径与查询参数解析
直接上可行的解决方案:
在WebSocket的监听回调里,通过请求对象的target字段拿到完整的路径+查询字符串,再用Elixir标准库的URI模块解析:
Websockets.listen("0.0.0.0", 4000) do ws # 拿到请求的目标部分,比如 "/v1/user-stream?id=1" target = ws.request.target uri = URI.parse(target) # 提取路径 path = uri.path # 结果是 "/v1/user-stream" # 解析查询参数为键值对 query_params = URI.decode_query(uri.query) # 结果是 %{"id" => "1"} end
关于你之前路径为空的问题
你用ws.request.url.path拿不到内容,大概率是ws.request.url这个字段没有正确包含完整的路径信息,或者它的结构和你预期的不一样。改用request.target获取原始的路径字符串,再用标准库的URI.parse解析,就能稳定拿到路径和查询参数了。
内容的提问来源于stack exchange,提问作者BAR
相关产品推荐
相关产品推荐

