🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #345818

Re: RestClient, API i wysyłanie POST ze złożonym parametrem

#345818
From: Ryszard
Date: Sat, 27 May 2017 06:31
79 lines
4491 bytes
jak pisałem wcześniej cały program jest oparty na 4 komponentach i po dodaniu parametrów: temat, treść html, odbiorca wiadomości, załączniki, wysyłane są postem:

function EncodeFile(const FileName: string): AnsiString;
var
   stream: TMemoryStream;
begin
     stream := TMemoryStream.Create;
     try
    	stream.LoadFromFile(Filename);

    	result := TNetEncoding.Base64.EncodeBytesToString(Stream.Memory, Stream.Size);
     finally
            stream.Free;
     end;
end;

procedure TForm1.Button9Click(Sender: TObject);
var
   jValue:TJSONValue;
begin
     try
     	MemoContent.Lines.Clear;

	RESTRequest5.Params[2].Value:='Temat wiadomości';

        RESTRequest5.Params[3].Value:=TNetEncoding.URL.Encode('<p>Jeszcze więcej Some HTML..<BR>ĄŻŚŹĆŃŁÓĘ<BR>ążśźćńłóę<BR>.ąść</p>');

     	with RESTRequest5.Params.AddItem() do
    	begin
             Name:='to[adres_email_odbiorcy_1@wp.pl][message_id]=0.49443700 1495599985@domain.com&to[adres_email_odbiorcy_1@wp.pl][reciver_name]';
             Value:='Imie Nazwisko';
             Kind:='pkGETorPOST';
        end;

     	with RESTRequest5.Params.AddItem() do
    	begin
             Name:='to[adres_email_odbiorcy_2@wp.pl][message_id]=0.49443700 1495599985@domain.com&to[adres_email_odbiorcy_2@wp.pl][reciver_name]';
             Value:='Imie Nazwisko';
             Kind:='pkGETorPOST';
        end;

        with RESTRequest5.Params.AddItem() do
        begin
             Name:='files[0][name]=plik01.png&files[0][mime]=image/png&files[0][inline]=plik01.png&files[0][content]';
             Value:=EncodeFile('D:\pliki\html\newsletter\plik01.png');
             Kind:='pkGETorPOST';
             Options := [poDoNotEncode];
        end;

        with RESTRequest5.Params.AddItem() do
        begin
             Name:='files[1][name]=plik02.png&files[1][mime]=image/png&files[1][inline]=plik02.png&files[1][content]';
             Value:=EncodeFile('D:\pliki\html\newsletter\plik02.png');
             Kind:='pkGETorPOST';
             Options := [poDoNotEncode];
        end;

        with RESTRequest5.Params.AddItem() do
        begin
             Name:='files[2][name]=plik03.png&files[2][mime]=image/png&files[2][inline]=plik03.png&files[2][content]';
             Value:=EncodeFile('D:\pliki\html\newsletter\plik03.png');
             Kind:='pkGETorPOST';
             Options := [poDoNotEncode];
        end;

        RESTRequest5.Execute;
     
        jValue:=RESTResponse5.JSONValue;
     
	MemoContent.Lines.Add(jValue.ToString);
     	MemoContent.Lines.Add(RESTResponse5.Content);
        MemoContent.Lines.Add(RESTResponse5.StatusCode.ToString + ' ' + RESTResponse5.StatusText);
  
     except
          on e: Exception do MemoContent.Lines.Add(e.Message);
    end;
end; 

mogę ci podesłać cały ten projekcik jak chcesz, ale to już chyba mailem
Technical Details
Message-ID: <a2759aaf-b747-4b20-a03a-c6348fe0f98b@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!67no788839itx.0!news-out.google.com!m134ni3546itb.0!nntp.google.com!67no788836itx.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <606e1e3f-f1ac-4a46-9a62-41ab5a3698f6@googlegroups.com> <ofugsm$c6k$1@portraits.wsisiz.edu.pl> <b7a9a755-6d54-40e1-8d77-44949789c7ee@googlegroups.com> <95c6e1bb-2244-45dd-a5e9-09478d2f0fc9@googlegroups.com> <98bd180c-2a55-4f9d-9e99-187d4f3eafb5@googlegroups.com> <og98mo$ktn$1@portraits.wsisiz.edu.pl>

Show Full Headers
Complete Article Headers
X-Received: by 10.99.135.198 with SMTP id i189mr2738000pge.83.1495866673765;        Fri, 26 May 2017 23:31:13 -0700 (PDT)
X-Received: by 10.157.13.170 with SMTP id 39mr111618ots.18.1495866673719; Fri, 26 May 2017 23:31:13 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!67no788839itx.0!news-out.google.com!m134ni3546itb.0!nntp.google.com!67no788836itx.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.delphi
Date: Fri, 26 May 2017 23:31:13 -0700 (PDT)
In-Reply-To: <og98mo$ktn$1@portraits.wsisiz.edu.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=185.93.92.116; posting-account=wPNY2goAAACcLaWlJ166m1yPvd_ji86-
NNTP-Posting-Host: 185.93.92.116
References: <606e1e3f-f1ac-4a46-9a62-41ab5a3698f6@googlegroups.com> <ofugsm$c6k$1@portraits.wsisiz.edu.pl> <b7a9a755-6d54-40e1-8d77-44949789c7ee@googlegroups.com> <95c6e1bb-2244-45dd-a5e9-09478d2f0fc9@googlegroups.com> <98bd180c-2a55-4f9d-9e99-187d4f3eafb5@googlegroups.com> <og98mo$ktn$1@portraits.wsisiz.edu.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a2759aaf-b747-4b20-a03a-c6348fe0f98b@googlegroups.com>
Subject: Re: RestClient, API i wysyłanie POST ze
 złożonym parametrem
From: Ryszard <rysiukowalski@wp.pl>
Injection-Date: Sat, 27 May 2017 06:31:13 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit