[delphi]indy10 idhttp get方法

idhttp中对于get方法的定义:

    procedure Get(AURL: string; AResponseContent: TStream); overload;
    procedure Get(AURL: string; AResponseContent: TStream; AIgnoreReplies: array of SmallInt);
     overload;
    function Get(AURL: string): string; overload;
    function Get(AURL: string; AIgnoreReplies: array of SmallInt): string; overload;

其中的最基本的方法是过程类方法
procedure Get(AURL: string; AResponseContent: TStream; AIgnoreReplies: array of SmallInt);
     overload;
其他的几个get方法重载都是基于嵌套的此方法。

参数:

AURL: string;	// get操作的目标URL
AResponseContent: TStream;	// 返回流
AIgnoreReplies: array of SmallInt;	// 忽略掉出现这些http状态码的错误

示例代码:

unit UMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    btnGetOne: TButton;
    btnGetTwo: TButton;
    btnGetThree: TButton;
    btnGetFour: TButton;
    procedure btnGetOneClick(Sender: TObject);
    procedure btnGetTwoClick(Sender: TObject);
    procedure btnGetThreeClick(Sender: TObject);
    procedure btnGetFourClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  Cgeturl = 'http://www.soso.com/';
  C302url = 'http://soso.com/';

var
  RespData : TStringStream;

procedure TForm1.btnGetOneClick(Sender: TObject);
begin
  RespData := TStringStream.Create('');
  IdHTTP1.Get(Cgeturl, RespData);
  Memo1.Text := RespData.DataString;
end;

procedure TForm1.btnGetTwoClick(Sender: TObject);
begin
  RespData := TStringStream.Create('');
  IdHTTP1.Get(C302url, RespData, [302]);
  Memo1.Text := RespData.DataString;
end;

procedure TForm1.btnGetThreeClick(Sender: TObject);
begin
  Memo1.Text := IdHTTP1.Get(Cgeturl);
end;

procedure TForm1.btnGetFourClick(Sender: TObject);
begin
  Memo1.Text := IdHTTP1.Get(C302url, [302]);
end;

end.

Demo下载:

http://download.csdn.net/detail/none01/5128838

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是使用Delphi Indy组件实现网络继电器控制的示例代码: ```delphi unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; type TForm1 = class(TForm) IdHTTP1: TIdHTTP; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private FRelayHost: string; FRelayPort: Integer; FRelayUser: string; FRelayPassword: string; FRelayIndex: Integer; FRelayStatus: Boolean; public procedure SetRelayStatus(ARelayIndex: Integer; AStatus: Boolean); function GetRelayStatus(ARelayIndex: Integer): Boolean; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin FRelayHost := '192.168.1.100'; //继电器地址 FRelayPort := 80; //继电器端口 FRelayUser := 'admin'; //继电器用户名 FRelayPassword := '123456'; //继电器密码 FRelayIndex := 1; //继电器序号,从1开始 end; procedure TForm1.FormDestroy(Sender: TObject); begin IdHTTP1.Disconnect; end; procedure TForm1.SetRelayStatus(ARelayIndex: Integer; AStatus: Boolean); var AURL: string; AResponse: string; begin if (ARelayIndex < 1) or (ARelayIndex > 8) then Exit; FRelayIndex := ARelayIndex; FRelayStatus := AStatus; AURL := Format('http://%s:%d/relay.cgi?relay%d=%d&', [FRelayHost, FRelayPort, FRelayIndex, Ord(FRelayStatus)]); IdHTTP1.Request.Username := FRelayUser; IdHTTP1.Request.Password := FRelayPassword; try AResponse := IdHTTP1.Get(AURL); //在这里处理返回结果 except //处理异常 end; end; function TForm1.GetRelayStatus(ARelayIndex: Integer): Boolean; var AURL: string; AResponse: string; begin if (ARelayIndex < 1) or (ARelayIndex > 8) then Exit; FRelayIndex := ARelayIndex; AURL := Format('http://%s:%d/relay.cgi?relay%d_status', [FRelayHost, FRelayPort, FRelayIndex]); IdHTTP1.Request.Username := FRelayUser; IdHTTP1.Request.Password := FRelayPassword; try AResponse := IdHTTP1.Get(AURL); //在这里处理返回结果,AResponse为字符串类型,需要转换成Boolean类型 Result := (AResponse = '1'); except //处理异常 Result := False; end; end; end. ``` 以上代码使用了Delphi Indy的TIdHTTP组件来发送HTTP请求,实现了继电器的状态控制和查询功能。需要注意的是,不同品牌的继电器控制命令可能会有所不同,需要根据实际情况进行修改。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值