在我的 Java 应用程序中,我正在寻找URLEncoder.encode(String s, String enc)的流式传输版本。我想使用“application/x-www-form-urlencoded”内容类型流式传输大型 HTTP 发布请求。这样的东西是否存在于图书馆或开源项目中?或者有没有简单的方法来实现它?
这是一个早期的尝试,但不正确,因为它不处理大于一个字节的 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"));
}
}