Я хочу отправить изображение с клиента J2ME на сервлет.
Я могу получить байтовый массив изображения и отправить его с помощью HTTP POST.
conn = (HttpConnection) Connector.open(url, Connector.READ_WRITE, true);
conn.setRequestMethod(HttpConnection.POST);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
os.write(bytes, 0, bytes.length); // bytes = byte array of image
Это код сервлета:
String line;
BufferedReader r1 = new BufferedReader(new InputStreamReader(in));
while ((line = r1.readLine()) != null) {
System.out.println("line=" + line);
buf.append(line);
}
String s = buf.toString();
byte[] img_byte = s.getBytes();
Но проблема, которую я обнаружил, заключается в том, что при отправке байтов от клиента J2ME некоторые байты теряются.Их значения 0A
и 0D
hex.Точно, возврат каретки и перевод строки.
Таким образом, ни метод POST, ни readLine()
не могут принимать значения 0A
и 0D
.
Кто-нибудь знает, каксделать это, или как использовать любой другой метод?