import java.io.ByteArrayInputStream;
import java.io.InputStream;
import org.eclipse.jetty.util.MultiMap;
import org.eclipse.jetty.util.UrlEncoded;
public class TestUrlEncoded {
public static void main (String[] args) throws Exception {
// ab=cd&ef=g<0xCE>
byte[] incompletSequenceAtTheEnd = { 97, 98, 61, 99, 100, 38, 101, 102, 61, 103, -50};
System.out.println("Incomplete sequence at the end:");
fromByteArray(incompletSequenceAtTheEnd);
fromInputStream(new ByteArrayInputStream(incompletSequenceAtTheEnd));
// ef=g<0xCE>&ab=cd
byte[] incompletSequenceInTheMiddle = {101, 102, 61, 103, -50, 38, 97, 98, 61, 99, 100};
System.out.println("\n\nIncomplete sequence in the middle 1:");
fromByteArray(incompletSequenceInTheMiddle);
fromInputStream(new ByteArrayInputStream(incompletSequenceInTheMiddle));
// e<0xCE>=fg&ab=cd
byte[] incompletSequenceInTheMiddle2 = {101, -50 , 61, 102, 103, 38, 97, 98, 61, 99, 100};
System.out.println("\n\nIncomplete sequence in the middle 2:");
fromByteArray(incompletSequenceInTheMiddle2);
fromInputStream(new ByteArrayInputStream(incompletSequenceInTheMiddle2));
// e=<0xCE>f&ab=cd
byte[] incompletSequenceInTheMiddle3 = {101, 61, -50, 102, 38, 97, 98, 61, 99, 100};
System.out.println("\n\nIncomplete sequence in the middle 3:");
fromByteArray(incompletSequenceInTheMiddle3);
fromInputStream(new ByteArrayInputStream(incompletSequenceInTheMiddle3));
}
static void fromByteArray(byte[] b) {
try {
MultiMap<String> values = new MultiMap<>();
UrlEncoded.decodeUtf8To(b, 0, b.length, values);
System.out.println(values);
} catch (Exception e) {
e.printStackTrace();
}
}
static void fromInputStream(InputStream is) {
try {
MultiMap<String> values = new MultiMap<>();
UrlEncoded.decodeUtf8To(is, values, 1000000, 10000000);
System.out.println(values);
} catch (Exception e) {
e.printStackTrace();
}
}
}