De nombreuses personnes doivent avoir utilisé l'OICQ, et elles doivent également avoir utilisé ses messages texte sur machine BP et ses messages texte sur téléphone portable. Les amis programmeurs doivent vouloir réaliser cette fonction.
Ce serait cool si votre programme pouvait être envoyé sur des téléphones portables et des machines BP.
Je vais maintenant présenter une méthode possible.
1. Principe
Elle est différente de la fonction de téléappel de l'OICQ où les deux parties peuvent communiquer uniquement lorsqu'elles sont en ligne. Elle peut envoyer des messages texte à de vrais téléavertisseurs. Tant que vous avez accès à Internet, vous pouvez le faire vous-même et envoyer des informations à tout moment et n'importe où, même si vous êtes à l'étranger, vous pouvez l'utiliser pour envoyer des informations à des amis en Chine, et vous n'avez pas à payer longtemps à l'international. frais de distance. N'est-ce pas pratique et sans tracas !
2. Analyse
De nos jours, chaque station de radiomessagerie sur Internet dispose de services en ligne, et la radiomessagerie Web est couramment utilisée. Cela se fait en accédant à la page d'accueil de la station de radiomessagerie sur Internet, puis en effectuant une recherche par le système de radiomessagerie d'informations de la station de radiomessagerie. Il nous suffit donc d'utiliser le protocole HTTP pour implémenter la pagination réseau. Ce qui suit est une brève introduction au protocole HTTP :
Terminer une session en HTTP nécessite généralement : 1) Le programme client établit une connexion avec le serveur 2) Envoie une requête 3) Le serveur répond au client 4) Ferme la connexion
Les requêtes HTTP couramment utilisées sont : 1) GET (demande d'une page Web) 2) HEAD (lecture de l'en-tête d'une page Web) 3) PUT (demande d'une page Web stockée) 4) POST (attachement d'une ressource nommée) 5 )DELETE ( Supprimer le World Wide Web) 6) LINK (Connecter deux ressources existantes) 7) UNLINK (Déconnecter deux ressources existantes)
Les codes d'état de réponse couramment utilisés dans HTTP sont : (* représente un nombre compris entre 0 et 9) 1. 1** (informations) 2. 2** (succès) 3.4** (erreur client) 4.5** (erreur du serveur)
En fait, le programme que nous souhaitons implémenter utilise uniquement les requêtes POST et GET et reçoit des réponses normales. POST peut être utilisé pour transmettre les données saisies par l'utilisateur au programme CGI sous la forme d'un flux de données. CGI utilise la variable d'environnement Contact-Length pour obtenir les informations de flux de données de la longueur correspondante.
Le format de la requête POST est le suivant :
POST http://www2.scuta.edu.cn/stu/chatroom/check.asp HTTP/1.0
Accepter : image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-Powerpoint, application/vnd.ms-Excel, application/msWord, */*
Référent : http://www2.scuta.edu.cn/stu/
Langue d'acceptation : zh-cn
Type de contenu : application/x-www-form-urlencoded
Connexion PRoxy : Keep-Alive
Agent utilisateur : Mozilla/4.0 (compatible ; MSIE 5.5 ; Windows 98)
Hébergeur : www2.scuta.edu.cn
Longueur du contenu : 87
Pragma : sans cache
Cookie : ASPsessionIDQGGGQHHE=ABGNNOJCIGOFCDLBIOLHKAFK
La structure d'en-tête de la réponse normale du serveur est :
200 OK HTTP/1.0 indique que la soumission des données a réussi
3. Mise en œuvre du programme
NMHTTP dans Delphi peut facilement implémenter la soumission de données mentionnée ci-dessus, et il prend également en charge le proxy, qui est également applicable à l'accès à Internet via des serveurs proxy, et ce n'est pas le proxy SOCKET5 utilisé pour envoyer des messages dans OICQ.
Créez un nouveau formulaire et ajoutez un composant ComboBox, nommé callto, pour stocker les objets de pagination. Par exemple, la pagination Guosen a 95908, 94908, 94909, 98062, 98063, 98019, 98035, 98052, 98038, 99055, 98060, 98061, 98051, 98003, 99062, 99016, 99017, 99018, 99019, 99046, 99076 ; ajoutez le composant Edit et nommez-le tonumber, qui représente le numéro de pagination ; ajoutez le composant RadioGroup et nommez-le RadioGroup1, définissez Caption sur le type de téléavertisseur et ajoutez deux éléments à articles, chacun dans une machine chinoise, Machine numérique ; Ajouter un composant Edit, nommé firstName, utilisé pour indiquer le nom de famille de la personne qui a envoyé la page ; Ajouter un composant RadioGroup, nommé RadioGroup2, La légende est définie sur le sexe du téléavertisseur, ajouter deux éléments aux éléments, à savoir M. et Miss ; Ajouter Le composant Memo, nommé callmsg, est utilisé pour saisir les informations envoyées ( Remarque : pour les machines numériques, il ne peut s'agir que d'informations numériques ; ajoutez le composant NMHTTP, nommé NMHTTP1 ; ajoutez une case à cocher, nommée ifuseproxy, pour déterminer s'il faut utiliser un serveur proxy, respectivement pour l'adresse du serveur proxy logiciel ; port du serveur proxy ; ajoutez enfin un bouton de commande et définissez la légende sur "Envoyer".
Prenons maintenant l'exemple de la pagination Guosen. Elle peut être implémentée à l'aide de la requête GET. Le code du programme du bouton « Envoyer » est le suivant :
procédure TForm1.Button1Click(Expéditeur : TObject);
var callstr:chaîne;
commencer callstr:='http://tips.gxspace.com/cgi-bin/tips/webpaging?stn_id='+callto.Text+'&page_no='+tonumber.Text;
cas RadioGroup1.ItemIndex de
0:callstr:=callstr+'&pager_type=C';
1:callstr:=callstr+'&pager_type=N';
fin;
callstr:=callstr+'&firstname='+firstname.text;
cas RadioGroup2.ItemIndex de
0:callstr:=callstr+'&title=0';
1:callstr:=callstr+'&title=1';
fin;
callstr:=callstr+'&msg='+callmsg.Text+'&answer=null&B1=Envoyer la radiomessagerie';
NMHTTP1.InputFileMode := FALSE;
NMHTTP1.OutputFileMode := FALSE;
NMHTTP1.ReportLevel := Status_Basic;
Si ifuseproxy.Vérifié alors
Commencer
NMHTTP1.Proxy := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
Fin;
NMHTTP1.Get(callstr);
fin;
Certaines paginations (telles que la pagination Runxun ne peuvent pas être implémentées avec la requête GET ci-dessus, elles nécessitent une requête POST), l'utilisation n'est pas très différente de celle ci-dessus, par exemple, voici l'utilisation POST de NMHTTP :
NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=True ;
NMHTTP1.ReportLevel:=Status_Basic;
Si ifuseproxy.Vérifié alors
Commencer
NMHTTP1.Proxy := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
Fin;
Avec NMHTTP1.HeaderInfo faites
Commencer
Cookie := Edit5.Text;
LocalMailAddress := Edit6.Text;
LocalProgram := Edit7.Text;
Référent := Edit8.Text;
ID utilisateur := Edit9.Text;
Mot de passe := Edit10.Text;
Fin;
//Mettez d'abord les données à soumettre dans le fichier test.txt : le format est stnid=A&pageno=123456...
NMHTTP1.Post('http://www.wocall.com/script/zbwebcall.asp','test.txt');
//L'utilisation spécifique de NMHTTP est installée dans Delphi. Il existe actuellement un exemple d'utilisation de NMHTTP sous BorlandDelphi5DemosFastNetHttp.
Les éléments ci-dessus sont tous implémentés à l'aide de NMHTTP. En fait, le composant WebBrowser de Delphi peut également être utilisé pour soumettre des données : Webbrowser1.OleObject.Document.FrontPage_Form1.submit();
Remarque : WebBrowser1 est le nom du composant WebBrowser, Frontpage_Form1 est le nom du formulaire dans la page Web ouverte avec WebBrowser.
Le formulaire sur la page Web ressemble à ceci :
<FORM name=FrontPage_Form1 action=http://message.com.cn/cgi-bin/ips/webpaging method=post>
...
</Formulaire>
La méthode d'implémentation consiste à utiliser un programme pour générer une page Web basée sur les informations saisies par l'utilisateur, puis à transmettre WebBrowser1.Navigate (page Web générée) et enfin à la soumettre au serveur Webbrowser1.OleObject.Document.FrontPage_Form1.submit(); est terminé une fois la pagination