7

HttpClient を使用して webdav サーバーにファイルをアップロード/削除しようとしています。ただし、ファイル名が space で構成されている場合は常に何も機能しません。「INVALID URI --- エスケープされた絶対パスが無効です」というエラー メッセージが表示されました。

この私の URL = "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")

**

4

3 に答える 3

5

私はこれを使って欲しいものを手に入れました...

URL.replaceAll( ""、 "%20")

于 2012-12-18T02:20:47.873 に答える
2

使用するjava.net.URLEncoder.encode

またはスペースを「+」に置き換えます

于 2012-11-30T20:34:24.730 に答える
1

ファイルの名前を次のように変更するだけです。

test_file.txt or textFile.txt

変数をコーディングしたり、そのようなファイルを作成したりするときは、スペースを使用しないことが一般的な標準です。

test_file (スネークケース) または textFile (キャメルケース) を使用します。

于 2012-11-30T20:46:32.540 に答える