dart url参数被破坏

时间:2014-11-11 02:17:54

标签: dart

给出以下简单代码

Uri url = new Uri.http("localhost:8090", "/browseDirectories",{"path":"\log\fastdmo.localhost.log"});

http.get( url).then( (response) {
    print( response.body);
 });

我发现http.get()方法没有在Web服务器上进行正确的调用 据我所知,网址变为

http://localhost:8090/browseDirectories?path=log%0Castdmo.localhost.log

我知道这是因为路径参数的前导\会被删除,但我该如何防止这种情况发生呢?

1 个答案:

答案 0 :(得分:2)

您可以通过在字符串前加上r:

来使用原始字符串
Uri url = new Uri.http("localhost:8090", "/browseDirectories",{"path":r"\log\fastdmo.localhost.log"});

将产生以下网址:

http://localhost:8090/browseDirectories?path=%5Clog%5Cfastdmo.localhost.log

或者,您可以使用第二个反斜杠来转义反斜杠:

Uri url = new Uri.http("localhost:8090", "/browseDirectories",{"path":"\\log\\fastdmo.localhost.log"});