このサイトに入り、フォームを使用して .exe ファイルを取得するアプリケーションを Delphi でプログラムする必要があります (実際、サイトは手動で名前を変更する必要がある .ex_ ファイルを送信します)。
http://www.bmf.com.br/arquivos1/arquivos_ipn.asp?idioma=pt-BR&status=ativo
ブラウザー経由で、「Cenários de Margem - CORE」の左側にあるチェックボックスをクリックしてから、[ダウンロード] ボタンをクリックすると、ファイルが自動的に取得されます。
他のサイトの .dat ファイルを操作できましたが、何が問題なのかわかりません。
問題は、コンテンツ タイプまたはファイルの保存方法にあるはずだと思います。
これは私がこれまでに得たものです:
procedure DownloadViaPost;
var
objHttp: TIdHttp;
sUrl: String;
sGetRequest: String;
objParametrosPost: TStringList;
objRespostaPost: TStringStream;
sViewState: String;
sEventValidation: String;
begin
sUrl := 'http://www.bmf.com.br/arquivos1/arquivos_ipn.asp';
objHttp := TIdHTTP.Create(nil);
objParametrosPost := TStringList.Create;
objRespostaPost := TStringStream.Create;
try
objHttp.HandleRedirects := true;
objHttp.AllowCookies := true;
objParametrosPost.Add('hdnStatus=ativo');
objParametrosPost.Add('chkArquivoDownload_ativo=36');
objParametrosPost.Add('txtDataDownload_ativo=21/08/2014');
objParametrosPost.Add('imgSubmeter.x=31');
objParametrosPost.Add('imgSubmeter.y=9');
objParametrosPost.Add('imgSubmeter=ativo');
objHttp.Request.ContentType := 'application/octet-stream exe';
objHttp.Post(sUrl, objParametrosPost, objRespostaPost);
objRespostaPost.SaveToFile('C:\Download.ex_');
finally
FreeAndNil(objHttp);
FreeAndNil(objParametrosPost);
FreeAndNil(objRespostaPost);
end;
end;