delphi XE8 NetHTTPRequest NetHTTPClient


delphi xe8 推出2個新http控件,NetHTTPRequest、NetHTTPClient

可以調用ASP.Net 一般應用程序獲取網頁數據,用舊的控件idhttp控件也可以,推薦用新的這2個組件。

http://localhost:52384/Handler1.ashx

procedure TForm5.Button1Click(Sender: TObject);
var
  ss: TStringStream;
begin
  ss := TStringStream.Create('', TEncoding.ASCII);//中文用UTF8
ss.Clear; self.NetHTTPClient1.Get(url, ss); self.Caption := ss.DataString; ss.Free; end;

 

procedure TForm5.Button2Click(Sender: TObject);
var
  ss: TStringStream;
begin
  ss := TStringStream.Create('', TEncoding.ASCII);
  ss.Clear;
  self.NetHTTPRequest1.Get(url);
  self.Caption := ss.DataString;
  ss.Free;
end;

 

 

http://docwiki.embarcadero.com/RADStudio/XE8/en/What's_New_in_Delphi_and_C%2B%2BBuilder_XE8

 New HTTP Client API

The RTL provides several new network units with members that let you create an HTTP client, send requests to HTTP servers and handle their responses.

Using an HTTP Client explains how to use the two new HTTP components, TNetHTTPClient and TNetHTTPRequest, to handle HTTP requests. See also the main HTTP client classes:

  • THTTPClient, that represents an HTTP client.
  • THTTPRequest, that represents a request from your client to a server.
  • THTTPResponse, that represents the server response to a request from your client. 

 

THTTPClient

http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Net.HttpClient.THTTPClient

OnReceiveData

example code

http://docwiki.embarcadero.com/CodeExamples/Berlin/en/RTL.HttpAsyncDownload_Sample

 

self.NetHTTPClient1.Get('www.sohu.com').ContentAsString(TEncoding.UTF8);

 

NetHTTPClient

var
  url: string;
  ss: tstringstream;
begin
  url := Edit1.Text;

  ss := tstringstream.Create('', tencoding.UTF8);
  ss.WriteString(Memo1.Text);
  self.NetHTTPClient1.Accept := 'text/html, application/xhtml+xml, */*';
  self.NetHTTPClient1.ContentType := 'application/x-www-form-urlencoded';//application/json
  self.NetHTTPClient1.AcceptEncoding := 'UTF-8';
  ss.Position := 0;
  Memo2.Text := self.NetHTTPClient1.Post(url, ss).ContentAsString(tencoding.UTF8);
  
  ss.Free;
end;

 

 IdHTTP

   self.IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded';
   self.IdHTTP1.Request.Accept:= 'text/html, application/xhtml+xml, */*';//application/json
   self.Memo2.Text:=self.IdHTTP1.Post(url,ss);

 

 NetHTTPRequest

  self.NetHTTPRequest1.Accept := 'text/html, application/xhtml+xml, */*';
  self.NetHTTPRequest1.url := self.Edit1.Text;
  self.NetHTTPRequest1.MethodString := 'POST';
  self.Memo2.Text := self.NetHTTPRequest1.Post(url, ss).ContentAsString(tencoding.UTF8);

 post 多個參數

    TStringList *ss;
    ss = new TStringList();
    ss->Add("PatientID=aaaaaaaaa");
    ss->Add("PictuerName=BBBBBBBBBBB");

    this->Caption = this->NetHTTPClient1->Post("http://127.0.0.1:8080/datasnap/rest/TServerMethods1/UpPic/", ss)->ContentAsString(TEncoding::ASCII);
    delete ss;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM