HttpClient = INVALID URI - 转义的绝对路径无效

时间:2012-11-30 20:28:34

标签: java url absolute-path apache-commons-httpclient

我正在尝试使用HttpClient将文件上传/删除到webdav服务器。但是,只要文件名由空格组成,就没有任何工作。我收到一条错误消息“无效的URI ---转义的绝对路径无效”。

这是我的网址=“http:// localhost:8080 / test file.txt”

private boolean delete(String fileName) {
    HttpClient client = new HttpClient();
    HttpHost host = new HttpHost(WEBDAV_URL, PORT_NUMBER);
    client.getHostConfiguration().setHost(host);
    DeleteMethod del = new DeleteMethod(WEBDAV_URL_COMPLETE + fileName);
    try {
        client.executeMethod(del);
        return true;
    } catch (HttpException e) {
        e.printStackTrace();
        return false;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
}

我应该使用任何方法或URL解析来解决问题

感谢

编辑,通过用“%20 ”替换空格来找到解决方案。

**

  

URL.replaceAll(“”,“%20”)

**

3 个答案:

答案 0 :(得分:5)

我用过这个并得到我想要的东西......

URL.replaceAll(“”,“%20”)

答案 1 :(得分:2)

使用java.net.URLEncoder.encode

或用'+'替换你的空格

答案 2 :(得分:1)

您只需将文件重命名为:

test_file.txt or textFile.txt

通常的标准是在编码变量或为此创建文件时永远不要使用空格。

使用test_file(snake case)或textFile(camelCase)。