این چند خط مقادیر دو تا فیلد مثلا UserName و Password رو به آدرسی که نوشته شده با متد Post میفرسته.
این کار میتونه برای پر کردن فرمهای اینترنتی هم مفید باشه یعنی یک فرم Html در یک سایت رو مثلا از دلفی پر کنید ، برای این کار سورس صفحه رو ببینید مقادیر Input رو پیدا کنید ، که در واقع همون فیلدها هستند و اسمشون رو در بیارید بعد هم مقداری که میخواهید بهشون نسبت بدید رو مثل مثال تعیین کنید ، بعد آدرسی که بهش فرستاده میشند رو با پیدا کردن Action صفحه بدست بیارید و اطلاعات رو پست کنید :
procedure THttpTestForm.btSendClick(Sender: TObject);
var
ARequestContent : TStringList;
AResponse: String;
begin
ARequestContent := TStringList.Create;
try
ARequestContent.Add('username=' + edName.Text);
ARequestContent.Add('password=' + edPass.Text);
AResponse := IdHTTPTest.Post('http://AWebSite.com/login.php', ARequestContent);
....
finally
ARequestContent.Free;
end;
end;
کد برنامه رو هم میزارم. منتها این کد رو اجرا نکنید چون فایده ای نداره باید آدرس و اسم فیلدها رو برای جای خاصی در نظر بگیرید.
جواب برگشتی که توی AResponse هست اون متن Htmlی هست که سرور بر میگردونه که میتونید هرطوری دوست دارید پروسسش کنید.
این یک مثال خیلی ساده هست ، یکمی خودتون با Idhttp بازی کنید کلی اکانات دیگش رو هم میبینید.
نکته مهم :
برای ارسال پارامترها به سرورهای دات نتی لازم هست که حتما خط زیر رو در Header ریکوستتون بزارید و الا پارامترها رو سرور نمیخونه ، من زیاد دیدم اینجا میپرسند که چرا وب سرویسها نمیتونند با دلفی ارتباط برقرار کنند، یا چرا پارامترهاشون توی سرور خالی دریافت میشند، دلیلش نبودن این هدر هست ، و البته ربطی به دلفی هم نداره حتی توی C# هم اگر از HttpWebReuest استفاده مکینید باید این رو به هدر اضافه کنید :
Content-Type: application/x-www-form-urlencoded.
کلمات کلیدی : TIdHTTP، دلفی ، Indy، Post، ایندی ، Client، Form, Html