考虑一下Delphi(Delphi是用Indy预先安装的,所以非常旧)
upgrading its Indy to a modern version
),它有一个
TIdHTTP
组成部分它是
Post()
方法具有用于提交webforms的重载版本,例如:
Params := TStringList.Create;
try
Params.Add('TestName=...');
IdHTTP1.Request.Username := ...;
IdHTTP1.Request.Password := ...;
// set other properties as needed...
IdHTTP1.Post('http://www.TestAddress.com/TestPage.php', Params);
finally
Params.Free;
end;
根据服务器的要求,您可能需要先请求Web表单的HTML,以获取与之相关的任何cookie,然后将它们作为Web表单提交的一部分发送回服务器。或者您可能需要设置
Referer
如果正在提交的Web表单:
// make sure TIdHTTP.AllowCookies is set to True beforehand...
IdHTTP1.Get('http://www.TestAddress.com/WebForm.php');
Params := TStringList.Create;
try
Params.Add('TestName=...');
IdHTTP1.Request.Username := ...;
IdHTTP1.Request.Password := ...;
// set other properties as needed...
IdHTTP1.Request.Referer := 'http://www.TestAddress.com/WebForm.php';
IdHTTP1.Post('http://www.TestAddress.com/TestPage.php', Params);
finally
Params.Free;
end;