Delphi使用WebBrowser/IdHttp从表单提交下载文件
我需要从网页下载一个文件。我尝试在Delphi中使用Delphi使用WebBrowser/IdHttp从表单提交下载文件,delphi,twebbrowser,idhttp,Delphi,Twebbrowser,Idhttp,我需要从网页下载一个文件。我尝试在Delphi中使用TWebBrowser和TIdHTTP,但没有成功 我找不到指向该文件的链接。当我单击HMTL按钮下载时,执行表单提交,并立即显示下载窗口。我尝试复制“下载”窗口中“文件详细信息”中显示的链接,但如果仅将其粘贴到浏览器中,该链接将无法工作 下载窗口中文件的链接: 下载按钮的代码: <input name="visualizarTodos" value="Visualizar processo em um único PDF de 61,
TWebBrowser
和TIdHTTP
,但没有成功
我找不到指向该文件的链接。当我单击HMTL按钮下载时,执行表单提交,并立即显示下载窗口。我尝试复制“下载”窗口中“文件详细信息”中显示的链接,但如果仅将其粘贴到浏览器中,该链接将无法工作
下载窗口中文件的链接:
下载按钮的代码:
<input name="visualizarTodos" value="Visualizar processo em um único PDF de 61,49 MB" onclick="javascript:submete();" id="botaoVisualizarTodos" class="botao" title="Visualizar Todas as peças listadas abaixo em um único PDF. Tamanho estimado: 61,49 MB. (Alt + F10)" type="button">
在这种情况下,有没有办法下载该文件?能否提供提供此下载按钮的HTML页面的URL?它是否可以公开访问,或者您必须登录才能访问它?完整的HTML
是什么样子的?在浏览器地址栏中粘贴下载链接不起作用,因为服务器希望通过POST
请求而不是GET
请求来请求URL。根据
的enctype
属性的值,您可以在TIdHTTP
中使用其Post()
方法和TStrings
或TIdMultipartFormDataStream
对象来模拟HTML表单提交。使用chrome开发工具或类似工具进行调试。跟踪请求。@RemyLebeau它需要登录名和密码。HTML页面的URL是,表单HTML是
,这不是完整的
。它有哪些元素?您必须POST
所有非空
值(使用TStrings
对象,因为省略了enctype
)。此外,由于涉及登录,Cookie很可能被用来跟踪登录状态。因此,请确保您先Get()
HTML页面以获取所需的Cookie,然后再Post()
'ing页面的表单数据。正如David所说,使用浏览器的内置开发工具查看文件是如何被请求的。然后您需要这样的内容:Stream:=TFileStream.Create('localfilename',fmCreate);Params:=TStringList.Create;参数Add('anoProcInt=2013');参数Add('numProcInt=1282');参数Add('origem=consultarProcesso');Add('processoliberadoparaedicaousario=…');参数Add('liberadaalteracoordenacao=…');IdHttp.Post('https://aplicacao3.tst.jus.br/visualizacaoAutos/VisualizarPecas.pub?visualizarTodos=1,参数,流);自由参数;免费代码>