Delphi IDHTTP控件:GET/POST 请求
Delphi IDHTTP控件:GET/POST 请求
最近一直在使用IDHTTP,下面是一些关于 GET、POST 请求基本使用方法的代码
一、GET 请求

1 procedure GetDemo;
2 var
3 IdHttp : TIdHTTP;
4 Url : string;//请求地址
5 ResponseStream : TStringStream; //返回信息
6 ResponseStr : string;
7 begin
8 //创建IDHTTP控件
9 IdHttp := TIdHTTP.Create(nil);
10 //TStringStream对象用于保存响应信息
11 ResponseStream := TStringStream.Create('');
12 try
13 //请求地址
14 Url := 'http://dict.youdao.com/';
15 try
16 IdHttp.Get(Url,ResponseStream);
17 except
18 on e : Exception do
19 begin
20 ShowMessage(e.Message);
21 end;
22 end;
23 //获取网页返回的信息
24 ResponseStr := ResponseStream.DataString;
25 //网页中的存在中文时,需要进行UTF8解码
26 ResponseStr := UTF8Decode(ResponseStr);
27 finally
28 IdHttp.Free;
29 ResponseStream.Free;
30 end;
31 end;

如果Get需要添加请求参数,则直接在地址后添加,各参数间用&连接
如:http://dict.youdao.com?param1=1¶m2=2
二、Post 请求

1 procedure PostDemo;
2 var
3 IdHttp : TIdHTTP;
4 Url : string;//请求地址
5 ResponseStream : TStringStream; //返回信息
6 ResponseStr : string;
7
8 RequestList : TStringList; //请求信息
9 RequestStream : TStringStream;
10 begin
11 //创建IDHTTP控件
12 IdHttp := TIdHTTP.Create(nil);
13 //TStringStream对象用于保存响应信息
14 ResponseStream := TStringStream.Create('');
15
16 RequestStream := TStringStream.Create('');
17 RequestList := TStringList.Create;
18 try
19 Url := 'http://f.youdao.com/?path=fanyi&vendor=fanyiinput';
20 try
21 //以列表的方式提交参数
22 RequestList.Add('text=love');
23 IdHttp.Post(Url,RequestList,ResponseStream);
24
25 //以流的方式提交参数
26 RequestStream.WriteString('text=love');
27 IdHttp.Post(Url,RequestStream,ResponseStream);
28 except
29 on e : Exception do
30 begin
31 ShowMessage(e.Message);
32 end;
33 end;
34 //获取网页返回的信息
35 ResponseStr := ResponseStream.DataString;
36 //网页中的存在中文时,需要进行UTF8解码
37 ResponseStr := UTF8Decode(ResponseStr);
38 finally
39 IdHttp.Free;
40 RequestList.Free;
41 RequestStream.Free;
42 ResponseStream.Free;
43 end;
44 end;

Post请求在网页中多使用List形式提交参数。
不过在一些API中规定了POST的请求格式为 JSON 格式或 XML,这是需要注意发起请求前需要先设置 ContentType 属性,使用Stream方式提交
已上面代码为例:
提交 JSON 格式:IdHttp.Request.ContentType :='application/json';
提交 XML 格式: IdHttp.Request.ContentType :='text/xml';
如未按要求格式提交,一般会返回 HTTP 1.1 / 415
Delphi IDHTTP控件:GET/POST 请求的更多相关文章
- HTTP 常见异常状态及Delphi IDHTTP 控件处理方式
以下部分为网上查找,部分为工作中整理 200:请求成功 202:请求被接受,但处理尚未完成 302:请求到的资源在一个不同的URL处临时保存 处理方式:重定向到临时的URL(IDHTTP处理方 ...
- Delphi WebBrowser控件的使用(大全 good)
Delphi WebBrowser控件的使用 WebBrowser控件属性:1.Application 如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDis ...
- <总结>delphi WebBrowser控件的使用中出现的bug
Delphi WebBrowser控件的使用中出现的bug: 1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...
- 修改Delphi工具控件的默认字体
修改Delphi工具控件的默认字体: 注册表: Delphi 6: HKEY_CURRENT_USER\Software\Borland\Delphi\6.0Delphi 7: HKEY_ ...
- Delphi TcxtreeList控件说明 转
Delphi TcxtreeList控件说明 树.cxTreeList 属性: Align:布局,靠左,靠右,居中等 AlignWithMargins:带边框的布局 Anchors:停靠 (akT ...
- delphi按钮控件的default属性
delphi按钮控件的default属性用于设置默认命令按钮,.设置为true时,按[Enter键]相当于用鼠标单击了该按钮 .窗口中如果有多个按钮的default是true的话,就根据tabinde ...
- Delphi fmx控件在手机滑动与单击的问题
Delphi fmx控件在手机滑动与单击的问题 (2016-03-08 10:52:00) 转载▼ 标签: it delphi 分类: Delphi10 众所周知,fmx制作的app,对于象TEdit ...
- Delphi maskedit控件的掩码含义及用法方法
Delphi maskedit控件的掩码含义及用法方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...
- Delphi StringGrid控件的用法
Delphi StringGrid控件 组件名称:StringGrid ●固定行及固定列: StringGrid.FixedCols:=固定行之数; StringGrid.Fixe ...
随机推荐
- mysql 查两个表之间的数据差集
需要查两个表之间的差集 首先,想到的是主键直接not in select mailbox_id from co_user where mailbox_id not in (select mailbox ...
- Robotframework与unittest对比
都可以自动挂ui测试 都可以自动化接口测试
- servlet 高级知识之Filter
Filter叫做拦截器, 对目标资源拦截,拦截HTTP请求和HTTP响应,本质是对url进行拦截. 与serlvet不同的是, Filter的初始化是随着服务器启动而启动. 在Filter接口中定义了 ...
- 设置默认Browser
电信A库要求android系统中有多个Browser时,开机自动设置一个默认浏览器,而不用弹出选择框让用户手动选择. 监听开机广播Intent.ACTION_BOOT_COMPLETED, 用Pack ...
- 【转】C#异步的世界【上】
[转]C#异步的世界[上] 新进阶的程序员可能对async.await用得比较多,却对之前的异步了解甚少.本人就是此类,因此打算回顾学习下异步的进化史. 本文主要是回顾async异步模式之前的异步,下 ...
- HTML and CSS学习概述
一·Web浏览器是一个连接到Web服务器,向Web服务器请求信息,然后解析返回来的HTML标记,并将其显示在浏览器窗口内的程序.1.Microsoft 2.Internet Explorer(IE)3 ...
- PHP字符串转实体函数
与HTML实体相关的函数 htmlspecialchars函数 描述:预定义的字符转换为HTML实体 语法:string htmlspecialchars(string $string [,int $ ...
- Django的学习(一)————初入django
一.基本指令 1.项目的建立: Django的项目建立,进入目录,打开cmd输入 django-admin startproject[项目名称],注意如果是在其他文件下把项目设计成资源文件. 2.Ap ...
- chattr改变文件属性
Linux chattr命令用于改变文件属性. 这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式: a:让文件或目录仅供附加用途. b:不更新文件或目录的最后存取时间. ...
- centos7 hbase 搭建笔记
1.require:java环境,本地可用的hadoop 2.拷贝hbase文件(hive-1.2.6) 3.设置环境变量 export HBASE_HOME=/data/spark/bin/hbas ...