[Delphi] Indy 컴포넌트 중 idHTTP 사용법
idHTTP
Delphi 컴포넌트중 Indy 컴포넌트는 정말 사용하기 편리하고
필요한 기능은 다 구현이 되어 있습니다.
그중 idHTTP사용법을 소개합니다.
1. POST 파일 전송 예제
Indy에 포함되어 있는 TidMultiPartFormData를 이용하여 웹페이지에
POST 전송/파일전송 하는 방법입니다.
크게 어려운 부분이 아니라서 소스코드로 대체 합니다.
필요한 기능은 다 구현이 되어 있습니다.
그중 idHTTP사용법을 소개합니다.
1. POST 파일 전송 예제
Indy에 포함되어 있는 TidMultiPartFormData를 이용하여 웹페이지에
POST 전송/파일전송 하는 방법입니다.
크게 어려운 부분이 아니라서 소스코드로 대체 합니다.
procedure TFmMain.Button1Click(Sender: TObject);
var
DataStream : TidMultiPartFormDataStream;
rs: TMemoryStream;
begin
DataStream := TIdMultiPartFormDataStream.Create;
rs := TMemoryStream.Create;
try
idHTTP1.Request.ContentType := DataStream.RequestContentType;
DataStream.AddFormField(''logid'',Trim(Edit1.Text));
DataStream.AddFormField(''passwd'',Trim(Edit2.Text));
// Post 로 apple_logid 와 apple_passwd 값을 전송합니다.
DataStream.AddFile(''upfile'',''e:\\downlogo.bmp'',''application/octet-stream'');
// upfile 변수에 ''e:\\downlogo.bmp'' 파일 을 추가 합니다..
DataStream.Position := 0;
try
IdHTTP1.Post(''test.php'',DataStream,rs);
finally
ShowMessage(PChar(rs.Memory));
end;
Finally
DataStream.Free;
end;
end;
2. 간단하게 idHTTP를 이용한 POST 전송
// 전달할 인수 설정
argv := TStringlist.Create;
argv.Add(''TrustSvc=''+Send_XML);
//호출
ret := IdHTTP1.Post(url, argv);
파일을 포함하지 않고 그냥
변수값을만 URL 로 POST 전송하는 간단한 방법 입니다.
3. idHTTP를 사용하여 페이지 소스 가져오기
str := idHTTP.Get("가져올URL");
4. idHTTP를 사용하여 URL 이미지 가져오기
procedure TForm1.GetWebImage(AImageURL: String);
var
ImageStream : TMemoryStream;
HTTP : TIdHTTP;
JpgImage : TJPEGImage;
begin
if AImageURL = '' then Exit;
ImageStream := TMemoryStream.Create;
HTTP := TIdHTTP.Create(nil);
try
HTTP.Get(AImageURL, ImageStream);
ImageStream.Position := 0;
JpgImage := TJPEGImage.Create;
try
JpgImage.LoadFromStream(ImageStream);
// 이미지를 표시할 컴포넌트
Image1.Picture.Assign(JpgImage);
finally
JpgImage.Free;
end;
finally
ImageStream.Free;
HTTP.Free;
end;
end;
댓글
댓글 쓰기