私の Java アプリでは、URLEncoder.encode(String s, String enc) のストリーミング バージョンを探しています。「application/x-www-form-urlencoded」コンテンツ タイプを使用して、大きな HTTP ポスト リクエストをストリーミングしたいと考えています。そのようなものは図書館やオープンソースプロジェクトに存在しますか? またはそれを実装する簡単な方法はありますか?
これは初期の試みでしたが、1 バイトより大きい UTF コードポイントを処理しないため、正しくありません。
// Incorrect attempt at creating a URLEncoder OutputStream
private class URLEncoderOutputStream extends FilterOutputStream
{
public URLEncoderOutputStream(OutputStream out)
{
super(out);
}
@Override
public void write(int b) throws IOException
{
String s = new String(new byte[] { (byte)b });
String enc = URLEncoder.encode(s, "UTF-8");
out.write(enc.getBytes("UTF-8"));
}
}