Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java ME (J2ME) > Тестирование HttpConnection |
Автор: Nemesis 21.8.2006, 18:01 |
Доброго дня всем! У меня есть небольшая проблемка, надеюсь, вы поможите мне ее решить. Каким образом я могу проверить работоспособность мидлета, который устанавливает HttpConnection с сервером? Дело в том, что удаленного сервера пока нет и тестировать нужно в локальных рамках, т.е. как бы мне приконнектиться к localhost и передать туда массив байтов (по идее на сервак передается изображение). Я так понимаю нужно еще писать свою небольшую прогу (сервер), которая бы прослушивала какой-то порт на моем компе.. или как? просто не имел дела с подобными вещами. Заранее спасибо! |
Автор: Dancer 21.8.2006, 18:35 |
я обычно поднимаю Apache у себя на компе, делаю скрипт нужный мне на перле (иногда JSP использую с котом Томом, Tomcat) и таким вот макаром отрабатываю взаимодействие с сеткой моего мидлета. |
Автор: Nemesis 21.8.2006, 18:44 |
![]() ![]() Dancer, а скажи пожалуйста, с httpConnection часто возникают проблемы? Мне вот по сути просто передать массив байтов - картинку, на сервак.. |
Автор: Dancer 21.8.2006, 18:50 |
ды я бы не сказал что большие проблемы возникают. Как и с обычным потоком работаешь. Вроде бы ничего такого...... ![]() А чем тебя так испугало поднятие локального сервака? (очень удобно для разработки, ИМХО конечно, но а по другому то как?) Можно конечно написать мидлет, который у тебя будет как сервер работать, его запускать первым, потом запускть твоего клиента, можно и так рабоать. Кстати, посмотри в примеры WTK там такой мидлетик точно есть. Всё делается на локальной машине, не нужно никакой сетки. Очень не плохо отлаживать код (просто на ошибки). В сетке уже нужно смотреть как будет быстродействие, сетка отваливаться и всё такое. А просто код погонять - лишь локальный сервак (всё ИМХО) Добавлено @ 18:52 музыку я гонял с сервака, организовывл протокол передачи данных между мидлетом и специфическим серваком, нормально всё шлётся, проблем никаких ![]() |
Автор: Nemesis 21.8.2006, 19:06 |
Оки, пасибо! Вот со 2ым мидлетом-сервером, хорошая идея, надо будет попробовать. |
Автор: javastic 22.8.2006, 09:16 | ||
Придётся кодировать бинарные данные. А серверный скрипт должен декодировать и сохранять это дело на диск. Я пол года назад делал приложение которое фоткает со встроеннй камеры, а затем передаёт изображение на сервак. |
Автор: redrick 22.8.2006, 12:13 |
Nemesis, Dancer, тоже пользуюсь апачем для этих целей - имхо оно того стоит - один раз научишься - и потом экономишь время. |
Автор: Nemesis 22.8.2006, 21:39 | ||||
Да, вы правы, надо научиться этому делу ![]() Если можно, еще кое что... У меня проблема появилась с записью в исходящий поток.. Вот я делаю в новом потоке след действия:
Но у меня предчувствие, что в os ничего не записывается... Вот тут, в другом потоке, я считываю данные:
javastic, а вот по поводу кодировки, это для уменьшения объема данных? Или для чего? P.S. Ты знаешь, у меня практически точно такое же задание ![]() |
Автор: Nemesis 22.8.2006, 22:29 |
redrick, imageData - это массив int`ов, полученный с помощью метода getRGB(int[] imageData, int offset, int scanlength, int x, int y, int width, int height) Ага, забавно)) Хотя он говорит, что уже делал.. |
Автор: javastic 23.8.2006, 09:08 | ||||
У тебя оно сейчас, у меня уже было ![]() Объем наоборот вырастит. А надо чтобы данные не побились. Например когда отсылается атачмент вместе с электронным письмом он кодируется алгоритмом mime64. Добавлено @ 09:10
Вот результат работы http://oko.awardspace.com/test.php Могу выложить само приложение, если хочешь протестировать. |
Автор: Dancer 23.8.2006, 09:20 | ||||
ну, вообще-то INT ты не можешь гонять через OutputStream и InputStream, тебе можно лишь с массивом byte работать. Так что нужно перевдить. Получаешь из массива INT массив BYTE, и этот массив уже шлёшь. На принимающей стороне, получаешь массив BYTE, преобразуешь его к массиву INT и получаешь уже свою картинку через Image.createImage() при использовании вот этого ты получаешь BYTE (int read()) и только BYTE, никак не INT.
ну и пишеться тоже ![]()
|
Автор: Nemesis 23.8.2006, 18:50 | ||
javastic, не подумай, что я не поверил тебе ) просто пишем одно и то же получается..
Вот так дела... а не дашь пару ссылочек полезных, где про это почитать можно? Dancer, спасибо, сегодня попробую перевести в byte, забавно )) |
Автор: javastic 24.8.2006, 10:16 | ||
Вот алгоритм base64, можешь из него выкинуть методы декодирования (оставив только кодировку) чтобы занимал в твоей проге меньше места. А декодировать будешь на серверной стороне.
|
Автор: Nemesis 24.8.2006, 21:26 |
javastic, спасибо большое!!! |
Автор: Nemesis 25.8.2006, 21:15 |
Всем привет! Вроде все работает и на сервак заливается изображение... Еще раз всем спасибо! Но столкнулся с еще одной проблемой: разрешение картинки чрезмерно мизерно и неприемлемо (160х120), увеличение разрешения картинки (при помощи изменения imageType в getSnapshot(imageType) ) не меняет ситуации, получается картинка, скажем 640х480, которая делается путем простого "растягиавния" 160х120... качество соответственно не очень, если не сказать грубее ![]() Скажите, кто-нибудь плотно работал с камерой телефона? есть ли возможность получать нормальные фотки? Такое ощущение, что фокус сбит и фоты получаются смазанными и очень расплывчатыми. Камера 1.3 Мпикселя. Фоты получаемые при помощи съемки стандартными средствами получаются четкими.. |