Muchas personas deben haber usado OICQ, y también deben haber usado los mensajes de texto de su máquina BP y los mensajes de texto de sus teléfonos móviles. Los amigos programadores deben querer realizar esta función.
Sería genial si su programa pudiera enviarse a teléfonos móviles y máquinas de presión arterial.
Ahora presentaré un posible método.
1. Principio
Es diferente de la función de buscapersonas de OICQ donde ambas partes pueden comunicarse sólo cuando están en línea. Puede enviar mensajes de texto a buscapersonas reales. Siempre que tenga acceso a Internet, puede hacerlo usted mismo y enviar información en cualquier momento y en cualquier lugar. Incluso si está en el extranjero, puede usarlo para enviar información a amigos en China y no tiene que pagar mucho tiempo en el extranjero. cargos de distancia. ¿No es conveniente y sin complicaciones?
2. Análisis
Hoy en día, todas las estaciones de buscapersonas en Internet tienen servicios en línea, y la paginación web es uno de los más utilizados. Esto se realiza accediendo a la página de inicio de la estación de búsqueda en Internet y luego buscando mediante el sistema de búsqueda de información de la estación de búsqueda. Entonces solo necesitamos usar el protocolo HTTP para implementar la paginación de red. La siguiente es una breve introducción al protocolo HTTP:
Completar una sesión en HTTP generalmente requiere: 1) El programa cliente establece una conexión con el servidor 2) Envía una solicitud 3) El servidor responde al cliente 4) Cierra la conexión
Las solicitudes HTTP comúnmente utilizadas son: 1) GET (solicitar una página web) 2) HEAD (leer el encabezado de una página web) 3) PUT (solicitar una página web almacenada) 4) POST (adjuntar un recurso con nombre) 5) ELIMINAR ( Eliminar la World Wide Web) 6)ENLACE (Conecta dos recursos existentes) 7)DESENLACE (Desconecta dos recursos existentes)
Los códigos de estado de respuesta comúnmente utilizados en HTTP son: (* representa un número entre 0 y 9) 1. 1** (información) 2. 2** (éxito) 3.4** (error del cliente) 4.5**(error del servidor)
De hecho, el programa que queremos implementar solo usa solicitudes POST y GET y recibe respuestas normales. POST se puede utilizar para pasar la entrada de datos del usuario al programa CGI en forma de flujo de datos. CGI utiliza la variable de entorno Contact-Length para obtener la información del flujo de datos de la longitud correspondiente.
El formato de solicitud POST es el siguiente:
PUBLICAR http://www2.scuta.edu.cn/stu/chatroom/check.asp HTTP/1.0
Aceptar: imagen/gif, imagen/x-xbitmap, imagen/jpeg, imagen/pjpeg, aplicación/vnd.ms-Powerpoint, aplicación/vnd.ms-Excel, aplicación/msWord, */*
Referencia: http://www2.scuta.edu.cn/stu/
Aceptar-Idioma: zh-cn
Tipo de contenido: aplicación/x-www-form-urlencoded
Conexión PRoxy: Mantener vivo
Agente de usuario: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
Anfitrión: www2.scuta.edu.cn
Longitud del contenido: 87
Pragma: sin caché
Cookie: ASPsessionIDQGGGQHHE=ABGNNOJCIGOFCDLBIOLHKAFK
La estructura del encabezado de la respuesta normal del servidor es:
200 OK HTTP/1.0 indica que el envío de datos fue exitoso
3. Implementación del programa
NMHTTP en Delphi puede implementar fácilmente el envío de datos mencionado anteriormente y también admite Proxy, que también es aplicable al acceso a Internet a través de servidores proxy, y no es el proxy SOCKET5 utilizado para enviar mensajes en OICQ.
Cree un nuevo formulario y agregue un componente ComboBox, llamado callto, para almacenar objetos de paginación. Por ejemplo, la paginación Guosen tiene 95908, 94908, 94909, 98062, 98063, 98019, 98035, 98052, 98038, 99055, 98060, 98061, 98051. 98003, 99062, 99016, 99017, 99018, 99019, 99046, 99076; agregue el componente Editar y asígnele el nombre número, que representa el número de paginación, agregue el componente RadioGroup y asígnele el nombre RadioGroup1, establezca Caption en el tipo de buscapersonas y agregue dos elementos a; Artículos, cada uno en máquina china, Máquina digital; Agregar componente Editar, llamado nombre, utilizado para indicar el apellido de la persona que envió la página Agregar componente RadioGroup, llamado RadioGroup2, El título se establece en el género del buscapersonas, agrega dos elementos a los elementos, a saber, Sr. y Miss Add El componente Memo, llamado callmsg, se utiliza para ingresar la información enviada ( Nota: Para máquinas digitales, solo puede ser información digital); agregue el componente NMHTTP, llamado NMHTTP1; agregue la casilla de verificación, llamada ifuseproxy, para determinar si se debe usar un servidor proxy, respectivamente, para la dirección del servidor proxy; puerto del servidor proxy; finalmente agregue un botón de comando y configure el Título en "Enviar".
Ahora tome la paginación de Guosen como ejemplo. Se puede implementar mediante la solicitud GET. El código de programa del botón "Enviar" es el siguiente:
procedimiento TForm1.Button1Click (Remitente: TObject);
var llamadastr:cadena;
comenzar llamadastr:='http://tips.gxspace.com/cgi-bin/tips/webpaging?stn_id='+callto.Text+'&page_no='+tonumber.Text;
caso RadioGroup1.ItemIndex de
0:callstr:=callstr+'&pager_type=C';
1:callstr:=callstr+'&pager_type=N';
fin;
callstr:=callstr+'&firstname='+firstname.text;
caso RadioGroup2.ItemIndex de
0:callstr:=callstr+'&title=0';
1:callstr:=callstr+'&title=1';
fin;
callstr:=callstr+'&msg='+callmsg.Text+'&answer=null&B1=Enviar paginación';
NMHTTP1.InputFileMode: = FALSO;
NMHTTP1.OutputFileMode: = FALSO;
NMHTTP1.ReportLevel:= Estado_Básico;
Si ifuseproxy.Checked entonces
Comenzar
NMHTTP1.Proxy:= Editar1.Texto;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
Fin;
NMHTTP1.Get(callstr);
fin;
Algunas paginaciones (como la paginación Runxun no se pueden implementar con la solicitud GET anterior, requieren una solicitud POST), el uso no es muy diferente de lo anterior, por ejemplo, el siguiente es el uso POST de NMHTTP:
NMHTTP1.InputFileMode:=Falso;
NMHTTP1.OutputFileMode:=Verdadero;
NMHTTP1.ReportLevel:=Estado_Básico;
Si ifuseproxy.Checked entonces
Comenzar
NMHTTP1.Proxy:= Editar1.Texto;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
Fin;
Con NMHTTP1.HeaderInfo haga
Comenzar
Cookie := Editar5.Texto;
Dirección de correo local: = Edit6.Text;
Programa Local := Editar7.Texto;
Referencia: = Edit8.Text;
ID de usuario: = Editar9.Texto;
Contraseña := Editar10.Texto;
Fin;
// Coloque primero los datos que se enviarán en el archivo test.txt: el formato es stnid=A&pageno=123456...
NMHTTP1.Post('http://www.wocall.com/script/zbwebcall.asp','test.txt');
// El uso específico de NMHTTP está instalado en Delphi. Actualmente hay un ejemplo de uso de NMHTTP en BorlandDelphi5DemosFastNetHttp.
Todo lo anterior se implementa usando NMHTTP. De hecho, el componente WebBrowser en Delphi también se puede usar para enviar datos. El uso es así: Webbrowser1.OleObject.Document.FrontPage_Form1.submit();
Nota: WebBrowser1 es el nombre del componente WebBrowser, Frontpage_Form1 es el nombre del formulario en la página web abierta con WebBrowser
El formulario en la página web se ve así:
<FORM nombre=FrontPage_Form1 acción=http://message.com.cn/cgi-bin/ips/webpaging método=post>
...
</formulario>
El método de implementación consiste en utilizar un programa para generar una página web basada en la información ingresada por el usuario, luego pasar WebBrowser1.Navigate (página web generada) y finalmente enviarla al servidor Webbrowser1.OleObject.Document.FrontPage_Form1.submit(); se completa una vez que se pagina