Delphi 10.3の「System.Net.FileClient.pas」にTFileClientというクラスがあります。これを使ってファイルの読み込みを試してみます。
uses
System.Net.HttpClient,System.Net.URLClient, System.Net.FileClient, System.Types;
usesは「System.Net.HttpClient,System.Net.URLClient, System.Net.FileClient, System.Types」を追加します。
procedure TForm1.Button1Click(Sender: TObject); begin var FileClient1:TURLClient := TFileClient.CreateInstance; var URLResponse1:IURLResponse := FileClient1.Execute('HTTPS', 'https://mjeld.com/index.php',nil,nil); var str1 := URLResponse1.ContentAsString(); OutputDebugString(PChar(str1)); end;
上記のように実装すればインターネット上の文字列を取得できます。
取得したIURLResponseにはContentStream(TStream)が入っていますのでバイナリも取得可能です。
非同期処理を行う場合、TURLClientのBeginExecute()を使います。
procedure TForm1.Button1Click(Sender: TObject); begin var FileClient1:TURLClient := TFileClient.CreateInstance; FileClient1.BeginExecute(hoge,'FILE', 'file:///C:/data/Unit1.pas'); end; procedure TForm1.hoge(const ASyncResult: IAsyncResult); begin if ASyncResult.IsCompleted then begin var res1 := TURLClient.EndAsyncURL(ASyncResult); var s := res1.ContentAsString(); OutputDebugString(PChar(s)); end; end;
BeginExecuteの1つ目の引数にhogeメソッドを指定し、その後の引数をFILEとローカルファイル(Unit1.pas)を指定しています。Unit1.pasはテキストファイルですので、ContentAsString()を使いStringに変換して出力できます。