Viele Leute müssen OICQ verwendet haben, und sie müssen auch seine BP-Maschinen-Textnachrichten und Mobiltelefon-Textnachrichten verwendet haben. Programmierfreunde müssen diese Funktion realisieren wollen.
Es wäre cool, wenn Ihr Programm an Mobiltelefone und BP-Geräte gesendet werden könnte.
Jetzt werde ich eine mögliche Methode vorstellen.
1. Prinzip
Sie unterscheidet sich von der Paging-Funktion von OICQ, bei der beide Parteien nur kommunizieren können, wenn sie online sind. Es können Textnachrichten an echte Pager gesendet werden. Solange Sie Zugang zum Internet haben, können Sie dies jederzeit und überall selbst tun und Informationen senden. Auch wenn Sie sich im Ausland befinden, können Sie damit Informationen an Freunde in China senden, ohne lange ins Ausland bezahlen zu müssen Entfernungsgebühren. Ist das nicht bequem und problemlos?
2. Analyse
Heutzutage verfügt jede Paging-Station im Internet über Online-Dienste, und Web-Paging ist ein häufig genutzter Dienst. Dies erfolgt durch Zugriff auf die Homepage der Funkrufstation im Internet und anschließendes Paging durch das Informationsrufsystem der Funkrufstation. Wir müssen also nur das HTTP-Protokoll verwenden, um Netzwerk-Paging zu implementieren. Im Folgenden finden Sie eine kurze Einführung in das HTTP-Protokoll:
Der Abschluss einer Sitzung in HTTP erfordert normalerweise: 1) Das Client-Programm stellt eine Verbindung mit dem Server her, 2) sendet eine Anfrage, 3) der Server antwortet dem Client, 4) schließt die Verbindung
Häufig verwendete HTTP-Anfragen sind: 1) GET (Anfordern einer Webseite) 2) HEAD (Lesen des Headers einer Webseite) 3) PUT (Anfordern einer gespeicherten Webseite) 4) POST (Anhängen einer benannten Ressource) 5 )DELETE ( Löschen Sie das World Wide Web) 6)LINK (Zwei vorhandene Ressourcen verbinden) 7)UNLINK (Zwei vorhandene Ressourcen trennen)
Häufig verwendete Antwortstatuscodes in HTTP sind: (* steht für eine Zahl zwischen 0 und 9) 1, 1** (Informationen) 2, 2** (Erfolg) 3,4** (Clientfehler) 4,5**(Serverfehler)
Tatsächlich verwendet das Programm, das wir implementieren möchten, nur POST- und GET-Anfragen und empfängt normale Antworten. Mit POST können die vom Benutzer eingegebenen Daten in Form eines Datenstroms an das CGI-Programm übergeben werden. CGI verwendet die Umgebungsvariable „Contact-Length“, um die Datenstrominformationen der entsprechenden Länge zu erhalten.
Das POST-Anfrageformat ist wie folgt:
POST http://www2.scuta.edu.cn/stu/chatroom/check.asp HTTP/1.0
Akzeptieren: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-Powerpoint, application/vnd.ms-Excel, application/msWord, */*
Referent: http://www2.scuta.edu.cn/stu/
Akzeptierte Sprache: zh-cn
Inhaltstyp: application/x-www-form-urlencoded
Proxy-Verbindung: Keep-Alive
Benutzeragent: Mozilla/4.0 (kompatibel; MSIE 5.5; Windows 98)
Gastgeber: www2.scuta.edu.cn
Inhaltslänge: 87
Pragma: kein Cache
Cookie: ASPsessionIDQGGGQHHE=ABGNNOJCIGOFCDLBIOLHKAFK
Die Header-Struktur der normalen Antwort des Servers lautet:
200 OK HTTP/1.0 zeigt an, dass die Datenübermittlung erfolgreich war
3. Umsetzung des Programms
NMHTTP in Delphi kann die oben erwähnte Datenübermittlung problemlos implementieren und unterstützt auch Proxy, der auch für den Internetzugang über Proxyserver gilt. Es handelt sich nicht um den SOCKET5-Proxy, der zum Senden von Nachrichten in OICQ verwendet wird.
Erstellen Sie ein neues Formular und fügen Sie eine ComboBox-Komponente mit dem Namen callto hinzu, um Paging-Objekte zu speichern. Guosen-Paging hat beispielsweise 95908, 94908, 94909, 98062, 98063, 98019, 98035, 98052, 98038, 99055, 98060, 98061, 98051, 98003, 99062, 99016, 99017, 99018, 99019, 99046, 99076; fügen Sie die Komponente „Bearbeiten“ hinzu und benennen Sie sie mit „Nummer“, die die Paging-Nummer darstellt; fügen Sie die Komponente „RadioGroup“ hinzu und nennen Sie sie „RadioGroup1“, legen Sie „Caption“ auf den Pager-Typ fest und fügen Sie zwei Elemente hinzu Artikel, jeweils in chinesischer Maschine, Digitale Maschine; Komponente „Bearbeiten“ mit dem Namen „Vorname“ hinzufügen, um den Nachnamen der Person anzugeben, die die Seite gesendet hat. und Miss; Add Die Komponente Memo mit dem Namen callmsg wird zur Eingabe der gesendeten Informationen verwendet ( Hinweis: Bei digitalen Maschinen kann es sich nur um digitale Informationen handeln. Fügen Sie die Komponente NMHTTP mit dem Namen NMHTTP1 hinzu. Fügen Sie ein Kontrollkästchen mit dem Namen ifuseproxy hinzu, um zu bestimmen, ob ein Proxyserver verwendet werden soll. Fügen Sie schließlich eine Befehlsschaltfläche für den Proxy-Server hinzu und stellen Sie die Beschriftung auf „Senden“.
Nehmen Sie nun das Guosen-Paging als Beispiel. Es kann mithilfe einer GET-Anfrage implementiert werden. Der Programmcode der Schaltfläche „Senden“ lautet wie folgt:
procedure TForm1.Button1Click(Sender: TObject);
var callstr:string;
begin callstr:='http://tips.gxspace.com/cgi-bin/tips/webpaging?stn_id='+callto.Text+'&page_no='+tonumber.Text;
Fall RadioGroup1.ItemIndex von
0:callstr:=callstr+'&pager_type=C';
1:callstr:=callstr+'&pager_type=N';
Ende;
callstr:=callstr+'&firstname='+firstname.text;
Fall RadioGroup2.ItemIndex von
0:callstr:=callstr+'&title=0';
1:callstr:=callstr+'&title=1';
Ende;
callstr:=callstr+'&msg='+callmsg.Text+'&answer=null&B1=Paging senden';
NMHTTP1.InputFileMode := FALSE;
NMHTTP1.OutputFileMode := FALSE;
NMHTTP1.ReportLevel := Status_Basic;
Wenn ifuseproxy.Checked dann
Beginnen
NMHTTP1.Proxy := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
Ende;
NMHTTP1.Get(callstr);
Ende;
Einige Paging-Funktionen (z. B. Runxun-Paging können nicht mit der oben genannten GET-Anfrage implementiert werden, sie erfordern eine POST-Anfrage). Die Verwendung unterscheidet sich nicht wesentlich von der oben genannten. Das Folgende ist beispielsweise die POST-Verwendung von NMHTTP:
NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=True;
NMHTTP1.ReportLevel:=Status_Basic;
Wenn ifuseproxy.Checked dann
Beginnen
NMHTTP1.Proxy := Edit1.Text;
NMHTTP1.ProxyPort := StrToInt(Edit2.Text);
Ende;
Mit NMHTTP1.HeaderInfo tun
Beginnen
Cookie := Edit5.Text;
LocalMailAddress := Edit6.Text;
LocalProgram := Edit7.Text;
Referrer := Edit8.Text;
BenutzerID := Edit9.Text;
Passwort := Edit10.Text;
Ende;
//Fügen Sie die zu übermittelnden Daten zuerst in die Datei test.txt ein: Das Format ist stnid=A&pageno=123456...
NMHTTP1.Post('http://www.wocall.com/script/zbwebcall.asp','test.txt');
//Die spezifische Verwendung von NMHTTP ist in Delphi installiert. Derzeit gibt es ein Beispiel für die Verwendung von NMHTTP unter BorlandDelphi5DemosFastNetHttp.
Die oben genannten Elemente werden alle mit NMHTTP implementiert. Tatsächlich kann die WebBrowser-Komponente in Delphi auch zum Senden von Daten verwendet werden: Webbrowser1.OleObject.Document.FrontPage_Form1.submit();
Hinweis: WebBrowser1 ist der Name der WebBrowser-Komponente, Frontpage_Form1 ist der Name des Formulars in der mit WebBrowser geöffneten Webseite
Das Formular auf der Webseite sieht folgendermaßen aus:
<FORM name=FrontPage_Form1 action=http://message.com.cn/cgi-bin/ips/webpaging method=post>
...
</Form>
Die Implementierungsmethode besteht darin, ein Programm zu verwenden, um eine Webseite basierend auf Benutzereingabeinformationen zu generieren, dann WebBrowser1.Navigate (generierte Webseite) zu übergeben und sie schließlich an den Server Webbrowser1.OleObject.Document.FrontPage_Form1.submit(); zu senden ist nach dem Paging abgeschlossen