Hmmm.... jakiś tydzień temu, obiecywałem komuś (już nie pamiętam komu)
że napisze jak te smsy do idei wysyłać (z wyświetlaniem obrazka niestety :( )
nie umiszczam tego w gotowcach bo idea i tak zmieni zabezpieczenia :)
no więc ładujemy na formę:
IdHTTP1 - można by ClientSocket ale wszyscy będą jończyć
WebBrowser1 - do wyświetlania obrazka
Memo1 - wiadomość
Edit1 - numer telefonu
Edit2 - kod z obrazka (z WebBrowsera)
Edit3 - podpis
Button1 - wyślij
Button2 - odśwież (powtórnie wyświetla obrazek i uaktualnia zmienne Cookie i Token)
dwie zmienne globalne:
var Cookie , Token : String;
no i oprogramowanie:
procedure TForm1.Button2Click(Sender: TObject);
var
Odbior : TStringStream;
begin
Odbior := TStringStream.Create('');
IdHTTP1.Get('http://213.218.116.131/', Odbior);
Cookie := IdHTTP1.Response.ExtraHeaders.Text;
Token := Odbior.DataString; Odbior.Free;
Delete(Token, 1, Pos('rotate_vt.asp?token=', Token) - 1);
Token := Copy(Token, 1, 56);
WebBrowser1.Navigate('http://213.218.116.131/' + Token);
Delete(Token, 1, 20);
Delete(Cookie, 1, Pos('Set-Cookie: ', Cookie));
Cookie := Copy(Cookie, 12, Pos(';', Cookie) - 12);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Nadanie , Odbior : TStringStream;
begin
Nadanie := TStringStream.Create('');
Odbior := TStringStream.Create('');
Nadanie.WriteString('token=' + Token +
'&RECIPIENT=' + Edit1.Text +
'&SHORT_MESSAGE=' + Memo1.Text +
'&SENDER=' + Edit3.Text +
'&pass=' + Edit2.Text);
IdHTTP1.Request.ExtraHeaders.Add('Cookie: ' + Cookie);
IdHTTP1.Request.Referer := 'http://213.218.116.131/';
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP1.Post('http://213.218.116.131/sendsms.asp', Nadanie, Odbior);
//w Odbior.DataString trzeba sprawdzić czy jest tekst że
//wiadomośc dostarczono
Nadanie.Free;
Odbior.Free;
end;
Oczywiście to jest tylko przykład, który należy sobie dopracować,
no ważna sprawa, coś tam jest z wiadomością że trzeba znaki spacji
pozamieniać na '+', przykład w programie do wysyłania smsów na tej
stronie, ja tam osobiście bym użył ClientSocket i urldecode więc
w przykładzie tego nie ma.
Co do WebBrowsera w onDocumentCompete formy można by wstawić:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
with WebBrowser1 do
begin
OleObject.Document.Body.leftMargin := 0;
OleObject.Document.Body.topMargin := 0;
end;
end;
żeby łądniej wyglądało.
niom to tyle