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 := ;
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;

delphi XE8 NetHTTPRequest NetHTTPClient的更多相关文章

  1. 咏南C/S开发框架支持最新的DELPHI XE8开发

    特大好消息:咏南C/S开发框架支持最新的DELPHI XE8开发!咏南开发框架让你再无开发工具升级后顾之忧! 购买咏南开发框架送项目源码!

  2. Delphi xe8 FMX StringGrid根据内容自适应列宽。

    Delphi xe8 FMX StringGrid根据内容自适应列宽. 网上的资料比较复杂,而且不是根据字体字号等设置列宽.故自己写了个function来用. function GetColMaxDa ...

  3. Delphi XE8帮助中的REST相关内容。

    Delphi XE8的离线帮助是我见过的最好的Delphi帮助文档了,内容相当详细和丰富,几乎涵盖了Delphi的方方面面!! Delphi XE8的帮助文档在哪里?“XE8安装目录\Help\Doc ...

  4. Delphi XE8 TStyleBook的使用

    Delphi XE8来了,FMX的性能有了巨大的提升,比如:XE7下ListBox上下滑动的卡顿已经不复存在,直接用xe8编译后,再上下划动ListBox,已经变的非常流畅.另外,也见到有网友说,通过 ...

  5. Delphi XE8中Delphi和JAVA数据类型对应关系!

    Delphi XE8中Delphi和JAVA数据类型对应关系所在单元文件:Androidapi.JNI.JavaTypes 对应关系: JObject = interface;//java.lang. ...

  6. Delphi XE8中Android开发有用的资源!

    一,FireMonkey Component Library在XE8帮助(topics.chm)中的位置:FireMonkey Component Library,展示了FireMonkey控件在VC ...

  7. Delphi XE8如何同Eclipse使用相同的Android SDK?

    我的Android SDK是单独安装的:Eclipse也是最新版的,并不是谷歌提供的集成了SDK的那个Eclipse:Delphi XE8安装后,我并没有通过XE8里面下载Android SDK到XE ...

  8. DELPHI XE8 远程调试

    最近公司项目遇到问题需要远程调试搜索了一下怎么用 发现网上能找到最新的是XE2上的说明现在已经有一些不同了 按照上面的方法不能调试成功 经过测试XE8的方法如下:1.项目编译设置:2.在被调试电脑上运 ...

  9. Delphi XE8中的DBExpress使用ODBC方式连接MySQL 5.6.24 X64!!!!

    Delphi:XE2.XE8 MySQL:5.6.24 X64 今天准备做一个使用数据库的REST程序,最开始使用XE2,后来使用XE8,但是我遇到一个让我头疼的问题,就是无法连接我要使用的数据库,这 ...

随机推荐

  1. error processing package oracle-java8-installer问题解决

    ubuntu通过ppa源安装jdk时遇到如下问题: download failedOracle JDK 8 is NOT installed.dpkg: error processing packag ...

  2. hdu4965矩阵快速幂

    这题不能直接按常规做啊,因为数组根本就开不下,转换思维A(B*A)^(n*n-1)B 这样的话数组B*A就是10*10了,然后快速幂就行了 刚开始数组都开小了,tle,还找了半天bug...还有就是定 ...

  3. Page.TryUpdateModel 方法

    使用来自值提供程序的值更新指定的模型实例. 使用来自值提供程序的值更新指定的模型实例. 命名空间:   System.Web.UI程序集:  System.Web(System.Web.dll 中) ...

  4. vim中将tab 设置成4个空格

    在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)set expandtab 对于已保存的文件,可以使用 ...

  5. 在将对象数组转换为json字符串

    private List<WHCombineBatchFragmentBarcodeEnterEvent.Message.Data> dataList = new ArrayList< ...

  6. ubuntu16.04下安装opencv3.3

    最近重装了ubuntu16.04的系统,在给电脑配置好cuda8.0和cudnn6.0的版本后,开始重新安装opencv,在opencv的官网上发现最新版本3.3版本增加了很多深度学习方面的东西,果断 ...

  7. Winform开发之ADO.NET对象Connection、Command、DataReader、DataAdapter、DataSet和DataTable简介

    ADO.NET技术主要包括Connection.Command.DataReader.DataAdapter.DataSet和DataTable等6个对象,下面对这6个对象进行简单的介绍:(1)Con ...

  8. Google Flutter框架:使用VS Code进行开发

    虽然进行安卓开发使用Android studio 比较方便 ,但是因为AS太臃肿而且还有一些404问题,就在打算如何进行高效的Android开发,于是找到了Flutter SDK, 他支持使用IDE进 ...

  9. MPI2 编程环境搭建 MPI4PY 编程环境搭建

    最近发现了一门新语言 Julia   ,  这门编程语言据说大有取代 Python语言成为数据科学的大佬,但是细看发现最主要说的是这门编程语言运行速度比较快,并且在分布式和并行计算上比较有优势,这时候 ...

  10. HDU 2050:折线分割平面

    折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...