您的位置:首页 > 理论基础 > 计算机网络

[delphi]indy idhttp post方法

2015-08-12 08:19 549 查看
网易
博客
LOFTCam-用心创造滤镜
LOFTER-最美图片社交APP


送20张免费照片冲印 >

注册登录
加关注

techiepc的博客

万事如意

首页

日志

LOFTER

相册

音乐

收藏

博友

关于我

日志

关于我



techiepc
加博友 关注他

文章分类

·默认分类(249)

LOFTER精选

注册免费冲印20张照片 >

网易考拉推荐

网易新闻


湖南郴州现"多彩空调墙"


·男孩溺亡同伴藏其物品瞒23天

·男子撞人逃逸后与伤者同病房

·老汉谎称自焚:想要制造混乱

·未成年少年强奸未遂杀人被捕

·老太旅游被浪拍骨折 索赔17万

·聋哑男子地下通道杀2名流浪汉

·中国女子死于日本 男嫌犯被捕

·男子结5次婚出狱报复砍杀4人

下载网易新闻客户端 >

delphi idhttp 存储cookies的有关问题

收藏一些DELPHI IDHTTP源码

[delphi]indy idhttp post方法

2013-10-13 10:49:40| 分类: 默认分类 | 标签:delphi idhttp post indy |举报|字号 订阅





下载LOFTER客户端

idhttp中对于post方法的定义:

[delphi] view plaincopyprint?

function Post(AURL: string; ASource: TIdStrings): string; overload;

function Post(AURL: string; ASource: TStream): string; overload;

function Post(AURL: string; ASource: TIdMultiPartFormDataStream): string; overload;

procedure Post(AURL: string; ASource: TIdMultiPartFormDataStream; AResponseContent: TStream); overload;

procedure Post(AURL: string; ASource: TIdStrings; AResponseContent: TStream); overload;

procedure Post(AURL: string; ASource, AResponseContent: TStream); overload;

其中的基本方法是下面的过程类方法,其他post重载方法均为嵌套使用此方法:

[delphi] view plaincopyprint?

procedure TIdCustomHTTP.Post(AURL: string; ASource, AResponseContent: TStream);

参数:

[delphi] view plaincopyprint?

AURL: string // post请求URL

ASource: TIdMultiPartFormDataStream // TStream派生的类,其中为发送的流数据及mime信息,可用于上传文件

ASource: TStream // 发送的流数据

AResponseContent: TStream // 响应内容流ASource: TIdStrings // TString派生的类,用于向服务器提交数据

ASource 为TIdStrings的数据,使用的MIME是默认的“application/x-www-form-urlencoded”,而TIdMultiFormDataStream则是根据发送的内容/文件来设定MIME类型。

示例:

[delphi] view plaincopyprint?

unit Umain;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,

IdHTTP, StdCtrls, IdMultipartFormData;

type

TForm1 = class(TForm)

IdHTTP1: TIdHTTP;

Memo1: TMemo;

btnOne: TButton;

btnTwo: TButton;

btnThree: TButton;

btnFour: TButton;

btnFive: TButton;

btnSix: TButton;

procedure btnOneClick(Sender: TObject);

procedure btnTwoClick(Sender: TObject);

procedure btnThreeClick(Sender: TObject);

procedure btnFourClick(Sender: TObject);

procedure btnFiveClick(Sender: TObject);

procedure btnSixClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

const

sPostUrl = 'http://cne.csu.edu.cn/reg/mima-pass.asp?path=';

procedure TForm1.btnOneClick(Sender: TObject);

var

postcmd : TStringList;

begin

postcmd := TStringList.Create; // 组合参数列表

postcmd.Add('AutoGet=1');

postcmd.Add('Logintype=0');

postcmd.Add('password=test');

postcmd.Add('username=test');

Memo1.Text := IdHTTP1.Post(sPostUrl, postcmd); // 以post的方式发送到服务器

end;

procedure TForm1.btnTwoClick(Sender: TObject);

var

postStream : TStringStream;

begin

IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; // 定义发送mime类型

postStream := TStringStream.Create('AutoGet=1&Logintype=0&password=test&username=test'); // 发送内容

Memo1.Text := IdHTTP1.Post(sPostUrl, postStream);

end;

procedure TForm1.btnThreeClick(Sender: TObject);

var

postStream : TIdMultiPartFormDataStream;

begin

IdHTTP1.HandleRedirects := true; // 允许重定向,因为这个站点会发生重定向

IdHTTP1.Request.Referer := 'http://www.qiuziti.com/'; // 设置来路,此网站要求

postStream := TIdMultiPartFormDataStream.Create; // 创建TIdMultiPartFormDataStream类

postStream.AddFormField('textfield', 'd:\temp\test.png'); // 表单参数

postStream.AddFile('uploaded_file', 'd:\temp\test.png', 'image/png'); // 表单文件

Memo1.Text := Utf8ToAnsi(IdHTTP1.Post('http://www.qiuziti.com/s/upload.ashx', postStream));

end;

procedure TForm1.btnFourClick(Sender: TObject);

var

postStream : TIdMultiPartFormDataStream;

respStream : TStringStream;

begin

IdHTTP1.HandleRedirects := true; // 允许重定向,因为这个站点会发生重定向

IdHTTP1.Request.Referer := 'http://www.qiuziti.com/'; // 设置来路,此网站要求

postStream := TIdMultiPartFormDataStream.Create; // 创建TIdMultiPartFormDataStream类

respStream := TStringStream.Create('');

postStream.AddFormField('textfield', 'd:\temp\test.png'); // 表单参数

postStream.AddFile('uploaded_file', 'd:\temp\test.png', 'image/png'); // 表单文件

IdHTTP1.Post('http://www.qiuziti.com/s/upload.ashx', postStream, respStream);

Memo1.Text := Utf8ToAnsi(respStream.DataString);

end;

procedure TForm1.btnFiveClick(Sender: TObject);

var

respStream : TStringStream;

postcmd : TStringList;

begin

postcmd := TStringList.Create;

respStream := TStringStream.Create('');

postcmd.Add('AutoGet=1');

postcmd.Add('Logintype=0');

postcmd.Add('password=test');

postcmd.Add('username=test');

IdHTTP1.Post(sPostUrl, postcmd, respStream);

Memo1.Text := respStream.DataString;

end;

procedure TForm1.btnSixClick(Sender: TObject);

var

postStream, respStream : TStringStream;

begin

postStream := TStringStream.Create('AutoGet=1&Logintype=0&password=test&username=test');

respStream := TStringStream.Create('');

IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; // 定义发送mime类型

IdHTTP1.Post(sPostUrl, postStream, respStream);

Memo1.Text := respStream.DataString;

end;

end.

Demo下载:
http://download.csdn.net/detail/none01/5130108
阅读(1547)| 评论(0)





喜欢推荐转载

delphi idhttp 存储cookies的有关问题

收藏一些DELPHI IDHTTP源码







































在LOFTER的更多文章

关闭
玩LOFTER,免费冲印20张照片,人人有奖! 我要抢>

评论

该内容仅供欣赏。

博客风格 - 手机博客 - 下载LOFTER APP - 订阅此博客
网易公司版权所有 ©1997-2015

加入网易博客注册
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: