サイトのフロントエンドから URL を受け取る画像プロキシのようなものを書いています。画像をダウンロードしてサイズを変更し、フロントエンドとクライアントが「プロキシ」からダウンロードするための小さな画像を返します。これは、あらゆる種類の URL パターンに対処する必要があることを意味します。これが、指定された URL をデコードし、URIUtils.decode を使用してエンコードすることを選択した理由です。
private String fixUrl(String fromUrl) throws URIException {
fromUrl = URIUtil.decode(fromUrl);
fromUrl = URIUtil.encodeQuery(fromUrl);
return fromUrl;
}
これは、既にエンコードされている URL を処理するのに役立ちます。私の問題は、一部の URL が二重にエンコードされていることです。私が見たところ、URIUtils.decode は再帰的なデコードを実行します。これは、二重にエンコードされた URL の場合、機能しない悪い URL を取得することを意味します。
一度だけデコードする簡単な方法はありますか?