![]() |
OnAir SDK (Internet Radio Programm)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Welt :-D
Ich möchte hier mal mein OnAir SDK vorstellen. (Version 1, release heute) Worum geht es? ![]() Mein Programm? Im Prinzip nur eine bescheidene Klasse zum Absetzen eines Request an die OnAir API ( ![]() ![]() Die Funktionen der API: Sendung hinzufügen, Sendung löschen, individuellen Sendeplan (für die eigene Homepage) zusammenstellen. Anbei liegt OnAir.exe (und Sourcecode) zum durchtesten. Zugang zur API? Kostenlos ( Anmeldung/Key: ![]() Wer testen will, darf das gerne tun (Nur-TestSendungen bitte wieder löschen) Der Account kann jederzeit wieder gelöscht werden. ![]() Download: 24.90 Kb ![]() php-Äquivalent: ![]() Sourcecode:
Delphi-Quellcode:
unit SDK_1;
{* by Webfan.de Free, Public Domain *} interface uses classes, sysutils,idhttp,dialogs; const _API_URL_ = 'http://programm.freizeitradio.de/OnAir/api.php'; type TWebArrayElement = record key:string; value:string; end; type TRequestArray = array of TWebArrayElement; type TOnAir = class(TObject) info:pointer; procedure start(user, key, APIfunction:string; sender:tobject;modus:boolean = false); procedure assignData(data:TRequestArray;sender:Tobject); procedure addData(data:TWebArrayElement;sender:Tobject); procedure clearquery; procedure clearquery_string; procedure CreateQueryString; procedure SendRequestIndy(client:tidhttp;sender:tobject); private { Private-Deklarationen } //AUTH api_user:string[255]; api_key:string[255]; SubuserApiUsername:string[255]; SubuserApiKey:string[255]; public { Public-Deklarationen } //API apifunction:string; query:TRequestArray; query_string:string; //RESULT error:integer; result:string; //RESULT CACHE cacheDir:string; CacheActivate:boolean; defaultExpire:integer; CacheFilename:string; testmodus:boolean; end; implementation procedure TOnAir.start(user, key, APIfunction:string; sender:tobject;modus:boolean = false); begin self.api_user := user; self.api_key := key; self.apifunction := apifunction; self.testmodus :=modus; end; procedure TOnAir.assignData(data:TRequestArray;sender:Tobject); begin self.query :=data; end; procedure TOnAir.addData(data:TWebArrayElement;sender:Tobject); begin setlength(self.query, length(self.query) +1); self.query[high(self.query)].key := data.key; self.query[high(self.query)].value := data.value; end; procedure TOnAir.clearquery; begin setlength(self.query,0); end; procedure TOnAir.clearquery_string; begin self.query_string := ''; end; procedure TOnAir.CreateQueryString; var i:integer; begin self.query_string := ''; self.query_string := self.query_string + 'api_user='+self.api_user; self.query_string := self.query_string + '&api_key='+self.api_key; self.query_string := self.query_string + '&api_function='+self.apifunction; for i := 0 to length(self.query) - 1 do begin self.query_string := self.query_string + '&'+self.query[i].key + '=' + self.query[i].value; end; end; {* Stolen forom Easy Helper *} procedure TOnAir.SendRequestIndy(client:tidhttp;sender:tobject); //Ahttp: Die HTTP Komponente von Indy 8.0 bzw. 9.0 //AtoURL: An diese URL werden die Informationen gesendet //Result: HTML-Ergebnis (Antwort des Scripts) Var lStream: TMemoryStream; //HTML-Result des PHP-Scripts lParams: TStringStream; I: Integer; AtoURL: String; begin atourl:= _API_URL_; Result:=''; if not Assigned(client) then exit; lStream := TMemoryStream.create; lParams := TStringStream.create(''); try client.Request.ContentType := 'application/x-www-form-urlencoded'; //Dieser Stream wird letztendlich gesendet //Stream mit Werten füllen lParams.WriteString(self.query_string); try //Stream an das PHP-Script senden client.Post(AtoURL, lParams, lStream); except on E: Exception do showmessage('Fehler bei der Übertragung: ' + E.Message); end; SetLength(self.Result,lStream.Size); lStream.Position:=0; lStream.ReadBuffer(self.Result[1],lStream.Size); finally lParams.Free; lStream.Free; end; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz