суббота, 9 августа 2014 г.
среда, 30 июля 2014 г.
brute method of post image throught multipart/form data
ResponseExtractor extractor = new HttpMessageConverterExtractor();
String boundary = "*****";
FileInputStream fileInputStream = new FileInputStream(new File(localPath));
URL url = new URL(uriBuilder.build().toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes("--" + boundary + "\r\n");
dos.writeBytes("Content-Disposition: form-data; name=\"image\";filename=\"image.png\"\r\n");
dos.writeBytes("\r\n");
int bufferSize = 4096;
int bytesAvailable;
byte[] buffer = new byte[bufferSize];
int bytesRead = fileInputStream.read(buffer, 0, bufferSize);
while (bytesRead > 0) {
dos.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, bufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
dos.writeBytes("\r\n");
dos.writeBytes("--" + boundary + "--\r\n");
fileInputStream.close();
dos.flush();
dos.close();
StringBuilder responce = new StringBuilder();
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String buff;
while ((buff = reader.readLine()) != null) {
Log.d("Debug", "Server Response " + buff);
responce.append(buff);
}
reader.close();
} catch (IOException ioex) {
Log.e("Debug", "error: " + ioex.getMessage(), ioex);
}
return responce.toString();
четверг, 5 июня 2014 г.
Определения, понятия, очевидности
Агрегация (композиция, включение)- методика создания нового класса путем включения существующих (машина состоит из колес, двигла...)
Делегирование - задача поставленная внешнему классу, перепоручается вложенному
Агрегация (агрегирование по ссылке) - отношение часть-целое, когда вложенный объект может существовать независимо от внешнего.
Композиция (агрегирование по значению) - внутренний объект не может существовать без объекта обертки.(университет - факультет)
Персистентность - сохранение состояния объектов между запусками программы.
Идентичность объектов - есть равенство ссылок(java)
Эквивалентность объектов - есть равенство состояний объектов
3. Вызывается конструктор классаДелегирование - задача поставленная внешнему классу, перепоручается вложенному
Агрегация (агрегирование по ссылке) - отношение часть-целое, когда вложенный объект может существовать независимо от внешнего.
Композиция (агрегирование по значению) - внутренний объект не может существовать без объекта обертки.(университет - факультет)
Персистентность - сохранение состояния объектов между запусками программы.
Идентичность объектов - есть равенство ссылок(java)
Эквивалентность объектов - есть равенство состояний объектов
Порядок инициализации объектов:
1. блок статической инициализации/инициализация статического поля базового класса.
2. блок статической инициализации/инициализация статического поля собственно класса.
3.1. Вызывается конструктор базового класса
3.2. Происходит инициализация переменных/ блоков инициализации в порядке их определения.
3.3. Вызывается остальной код конструктора.
Java and frustration
Java is very complex language. At least for me. I often fall into frustration learning it, especially passing tests like SCJP.
Var args syntax:
Var args syntax:
1: static void varArgs1(int... args){}
2: static void varArgs2(int[] args){}
3: public static void main(String[] args) {
4: varArgs1(10, 20, 30);
5: varArgs1(new int[]{10, 20, 30}); //oyw. ok
6: varArgs2(10, 20, 30); //compile error
7: varArgs2(new int[]{10, 20, 30});
8: }
среда, 4 июня 2014 г.
Подписаться на:
Комментарии (Atom)