RFC1738セクション2.2に従って、URL自体にスペースを入れないでください。URLエンコードメソッドを実行してエンコードします。
String s = "ftp://username:password@ftpclient:21/AAB BBC/hhhh 0001.jpg";
String encodedUrl = URLEncoder.encode(s,"UTF-8");
すでにエンコードを行っているとのことですが、550エラーが返されました。エンコーディングが表示されなかったので、必要だと言っているだけです。
私は実際にブラウザからこれを試して、あなたがそれに到達できるかどうかを確認します。また、使用しているURLをダンプして、ブラウザー(または、wget、curl、手元にあるものなら何でも)から試してみます。550は「許可」の問題としてリストされており、ファイルが見つかりません。少し驚いていますが、これは短いコードであり、ユーザーやパスワードのテストを妨害するためのエラーとして表示される可能性があります。組み合わせ。言いにくい。
私があなたに持っているもう一つの質問は、あなたがクライアントソリューションを望まないと言っているが、あなたはサーバーではなくクライアントを書いているようだということです。サーバーのデフォルトのFTPポートであるポート21に移動します。
エンコードのさまざまな組み合わせを試して、すべてをエンコードしていないかどうかを確認します...URLパスをエンコードする必要があります。パスワードにファンキーな文字が含まれていますか?
ブラウザから直接テストすると、多くの洞察が得られます。