Многие люди, должно быть, использовали OICQ, и они, должно быть, также использовали его машинные текстовые сообщения BP, а друзья-программисты должны захотеть реализовать эту функцию.
Было бы здорово, если бы вашу программу можно было отправить на мобильные телефоны и устройства BP.
Теперь я представлю возможный метод.
1. Принцип
Это отличается от пейджинговой функции OICQ, где обе стороны могут общаться только тогда, когда они находятся в сети. Она может отправлять текстовые сообщения на настоящие пейджеры. Пока у вас есть доступ к Интернету, вы можете делать это самостоятельно и отправлять информацию в любое время и в любом месте. Даже если вы находитесь за границей, вы можете использовать его для отправки информации друзьям в Китае, и вам не придется платить за международные звонки. дистанционные сборы, разве это не удобно и беспроблемно!
2. Анализ
В настоящее время каждая пейджинговая станция в Интернете имеет онлайн-сервисы, и веб-пейджинг является широко используемым. Это осуществляется путем доступа к домашней странице пейджинговой станции в Интернете и последующего пейджинга с помощью информационной пейджинговой системы пейджинговой станции. Таким образом, нам нужно использовать только протокол HTTP для реализации сетевого пейджинга. Ниже приводится краткое введение в протокол HTTP:
Для завершения сеанса в HTTP обычно требуется: 1) Клиентская программа устанавливает соединение с сервером 2) Отправляет запрос 3) Сервер отвечает клиенту 4) Закрывает соединение
Обычно используемые HTTP-запросы: 1) GET (запрос веб-страницы) 2) HEAD (чтение заголовка веб-страницы) 3) PUT (запрос сохраненной веб-страницы) 4) POST (присоединение именованного ресурса) 5) DELETE ( Удалить Всемирную паутину) 6)LINK (Подключить два существующих ресурса) 7)UNLINK (Отключить два существующих ресурса)
Обычно используемые коды состояния ответа в HTTP: (* представляет число от 0 до 9) 1. 1** (информация) 2. 2** (успех) 3.4** (ошибка клиента) 4.5** (ошибка сервера)
Фактически программа, которую мы хотим реализовать, использует только запросы POST и GET и получает нормальные ответы. POST может использоваться для передачи данных, введенных пользователем, в программу CGI в виде потока данных. CGI использует переменную среды Contact-Length для получения информации о потоке данных соответствующей длины.
Формат запроса POST следующий:
ПОСТ http://www2.scuta.edu.cn/stu/chatroom/check.asp HTTP/1.0
Принять: изображение/gif, изображение/x-xbitmap, изображение/jpeg, изображение/pjpeg, приложение/vnd.ms-Powerpoint, приложение/vnd.ms-Excel, приложение/msWord, */*
Референт: http://www2.scuta.edu.cn/stu/.
Принимаемый язык: zh-cn
Тип контента: приложение/x-www-form-urlencoded
Прокси-соединение: поддержка активности
Пользовательский агент: Mozilla/4.0 (совместимый; MSIE 5.5; Windows 98)
Хост: www2.scuta.edu.cn.
Длина контента: 87
Прагма: без кэша
Файл cookie: ASPsessionIDQGGGQHHE=ABGNNOJCIGOFCDLBIOLHKAFK
Структура заголовка обычного ответа сервера:
200 OK HTTP/1.0 указывает, что отправка данных прошла успешно.
3. Реализация программы
NMHTTP в Delphi может легко реализовать упомянутую выше отправку данных, а также поддерживает прокси-сервер, который также применим для доступа в Интернет через прокси-серверы, и это не прокси-сервер SOCKET5, используемый для отправки сообщений в OICQ.
Создайте новую форму и добавьте компонент ComboBox с именем callto для хранения объектов подкачки. Например, подкачка Guosen имеет 95908, 94908, 94909, 98062, 98063, 98019, 98035, 98052, 98038, 99055, 98060, 98061, 98051. 98003, 99062, 99016, 99017, 99018, 99019, 99046, 99076; добавьте компонент Edit и назовите его tonumber, который представляет номер пейджинга; добавьте компонент RadioGroup и назовите его RadioGroup1, установите для параметра Caption тип пейджера и добавьте два элемента в предметы, каждый на китайской машине, Цифровая машина; Добавить компонент Edit с именем firstName, используемый для указания фамилии человека, отправившего страницу; Добавить компонент RadioGroup с именем RadioGroup2, в Caption указать пол пейджера, добавить к элементам два элемента, а именно Mr. и Miss; Add. Компонент Memo с именем callmsg используется для ввода отправленной информации ( Примечание. Для цифровых машин это может быть только цифровая информация); добавьте компонент NMHTTP с именем NMHTTP1; добавьте флажок с именем ifuseproxy, чтобы определить, следует ли использовать прокси-сервер; добавьте два компонента редактирования, соответственно, для адреса программного прокси-сервера, порт прокси-сервера, наконец, добавьте командную кнопку и установите для заголовка значение «Отправить».
Теперь возьмем пейджинг Guosen в качестве примера. Его можно реализовать с помощью GET-запроса. Программный код кнопки «Отправить» выглядит следующим образом:
процедура TForm1.Button1Click(Отправитель: TObject);
вар callstr: строка;
начать callstr:='http://tips.gxspace.com/cgi-bin/tips/webpageing?stn_id='+callto.Text+'&page_no='+tonumber.Text;
случай RadioGroup1.ItemIndex из
0:callstr:=callstr+'&pager_type=C';
1:callstr:=callstr+'&pager_type=N';
конец;
callstr:=callstr+'&firstname='+firstname.text;
случай RadioGroup2.ItemIndex из
0:callstr:=callstr+'&title=0';
1:callstr:=callstr+'&title=1';
конец;
callstr:=callstr+'&msg='+callmsg.Text+'&answer=null&B1=Отправить пейджинг';
NMHTTP1.InputFileMode := ЛОЖЬ;
NMHTTP1.OutputFileMode := ЛОЖЬ;
NMHTTP1.ReportLevel := Status_Basic;
Если ifuseproxy.Checked тогда
Начинать
NMHTTP1.Прокси := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
Конец;
NMHTTP1.Get(строка вызова);
конец;
Некоторые подкачки (например, подкачка Runxun не могут быть реализованы с помощью вышеуказанного запроса GET, для этого требуется запрос POST), использование не сильно отличается от описанного выше, например, ниже показано использование NMHTTP POST:
NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=True;
NMHTTP1.ReportLevel:=Status_Basic;
Если ifuseproxy.Checked тогда
Начинать
NMHTTP1.Прокси := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
Конец;
С помощью NMHTTP1.HeaderInfo выполните
Начинать
Файл cookie:= Edit5.Text;
LocalMailAddress:= Edit6.Text;
LocalProgram := Edit7.Text;
Реферер: = Edit8.Text;
Идентификатор пользователя: = Edit9.Text;
Пароль := Edit10.Text;
Конец;
//Сначала поместите данные для отправки в файл test.txt: формат stnid=A&pageno=123456...
NMHTTP1.Post('http://www.wocall.com/script/zbwebcall.asp','test.txt');
//Специальное использование NMHTTP установлено в Delphi. В настоящее время существует пример использования NMHTTP в BorlandDelphi5DemosFastNetHttp.
Все вышеперечисленное реализовано с использованием NMHTTP. Фактически, компонент WebBrowser в Delphi также может использоваться для отправки данных следующим образом: Webbrowser1.OleObject.Document.FrontPage_Form1.submit();
Примечание. WebBrowser1 — это имя компонента WebBrowser, Frontpage_Form1 — имя формы на веб-странице, открытой с помощью WebBrowser.
Форма на веб-странице выглядит следующим образом:
<FORM name=FrontPage_Form1 action=http://message.com.cn/cgi-bin/ips/webpaging метод=post>
...
</Форма>
Метод реализации заключается в использовании программы для создания веб-страницы на основе введенной пользователем информации, затем передачи WebBrowser1.Navigate (сгенерированной веб-страницы) и, наконец, отправки ее на сервер Webbrowser1.OleObject.Document.FrontPage_Form1.submit(); завершается после пейджинга