Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I upload a file using http post? Delphi 2009

My goal is to upload a text file via HTTP post I am using Delphi 2009.

Say for example to the following URL

https://www.example.com/ex/exampleAPI.asmx/Process

I understand it can be done by using the TIdHttp component. And the following call

IdHttp1.Post();

But I cant figure out how to set up everything i.e. specifying the url and including the file to be posted.

Thanks.

like image 879
Trevor Avatar asked Jun 04 '12 22:06

Trevor


1 Answers

TIdHTTP has two overloaded versions of Post() that take a filename as input:

var
  Response: String;

Response := IdHTTP1.Post('https://www.example.com/ex/exampleAPI.asmx/Process', 'c:\filename.txt');

.

var
  Response: TStream;

Response := TMemoryStream.Create;
IdHTTP1.Post('https://www.example.com/ex/exampleAPI.asmx/Process', 'c:\filename.txt', Response);
...
Response.Free;

Note that you are posting to an HTTPS URL, so you need to first assign an SSL-enabled IOHandler, such as TIdSSLIOHandlerSocketOpenSSL, to the TIdHTTP.IOHandler property beforehand.

like image 144
Remy Lebeau Avatar answered Sep 21 '22 10:09

Remy Lebeau