даешь безвозмездность noname Спецвыпуск: Хакер, номер #065, стр. 065-060-2 getBytes(); hdc.httpProperties.put("Content-Length", data.length + ""); hdc.httpProperties.put("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)"); hdc.httpProperties.put("Connection", "close"); hdc.openOutputStream(); hdc.post(data); stringItem1.setText("SMS отправлено!"); } catch(Exception e) { stringItem1.setText("Нет (E)GPRS-связи! \nИсключение: " + e.getMessage()); } finally { hdc.close(); } } Чтобы уменьшить расход трафика и чтобы после отправки POST-данных не принимать страницу, на которой написано «SMS отправлено успешно!», в соответствующий момент соединение должно быть закрыто: hdc.httpProperties.put("Connection", "close"); Собственно, код отправки использует специальный кустарный класс (найден в интернете) для удобства работы с http. Сам мидлет представляет собой контролы для ввода текста, накиданные на форму (имя отправляющего, текст SMS и номер абонента). Номер проверялся на валидность нужного оператора вот так: String subnum = phone.getString().substring(0,6); // проверяем номера на МОТИВ'овские (взято с того же сайта) if (subnum.equals("790287") || subnum.equals("790438") || subnum.equals("790454") || subnum.equals("790498") || subnum.equals("790863") || subnum.equals("790890") || subnum.equals("790891") || subnum.equals("790892") || subnum.equals("795019") || subnum.equals("795020")) { // если все ОК, то создаем поток для http-коннекта waitform wf = new waitform(username.getString(),phone.getString(),smstxt.getString()); Display.getDisplay(MainMidlet.instance).setCurrent(wf); conn logger = new conn(wf,username.getString(),phone.getString(),smstxt.getString()); logger.start(); System.gc(); } [подробнее] можно посмотреть в исходниках на диске к журналу. Проект был написан полностью в среде Borland JBuilder 2006. [проблема,] с которой я столкнулся при написании мидлета: текст в телефоне вводится и хранится в кодировке UTF-8 (UNICODE), а сервер принимает POST-данные в ASCII. Буквы английского алфавита принимаются на телефоне адресанта нормально, но вместо русских символов доходят только вопросительные знаки. В одном из публичных мидлетов мне удалось найти функцию для конвертирования UNICODE в ASCII, ее я и применил для конвертирования текстовых полей. [такие «дыры»] можно найти на сайтах и других операторов (к примеру TELE2), а не только «МОТИВа». Администраторам безопасности компаний — сотовых операторов стоит уделить больше внимания своим сайтам... |