Bash-下载文件,必要时登录

Bash-下载文件,必要时登录,bash,curl,download,wget,lynx,Bash,Curl,Download,Wget,Lynx,我正在使用BASH,需要下载一个TXT文件,该文件是根据请求在服务器端生成的。这意味着URL类似于: http://1.1.1.1:4884/page.aspx?fileID=123456&lang=en&Export=1 Export=1被.NET应用程序捕获,并根据文件ID向我提供了一个TXT文件。 如果我没有登录,我将被重定向到URL中带有?ReturnUrl的登录表单,在登录时将我重定向回请求的页面 如何使用BASH,cURL/wget/lynx成功下载此文件。它必须是

我正在使用BASH,需要下载一个TXT文件,该文件是根据请求在服务器端生成的。这意味着URL类似于:

http://1.1.1.1:4884/page.aspx?fileID=123456&lang=en&Export=1
Export=1
被.NET应用程序捕获,并根据文件ID向我提供了一个TXT文件。
如果我没有登录,我将被重定向到URL中带有
?ReturnUrl
的登录表单,在登录时将我重定向回请求的页面

如何使用BASH,
cURL/wget/lynx
成功下载此文件。它必须是非交互式的

我已经尝试使用curl、wget和lynx自动化(cmd log)的
--cookie
选项。Lynx工作得最好,但由于某些原因,文件下载提示无法自动执行

请帮忙。如果需要任何其他信息,我将提供

  • 使用卷曲
  • 代码如下:
    • 尝试下载该文件
    • 如果失败(重定向到登录页面),请登录并转到开始
  • 您始终需要使用curl的-c选项来存储curl调用之间的cookie
  • 要使用curl登录,您需要知道服务器上的表单,这意味着:您通常在其中键入登录名和密码的字段名称
  • 要将数据发送到服务器,请使用curl的-d选项。要将cookie发送到服务器,请使用-b(或--cookie)

  • wget
    具有
    --http密码
    &
    --http用户
    选项。。。试试看。。。有关更多信息,请查看
    man wget
    。。。如果没有任何效果,请尝试使用
    expect
    实用程序。您可能需要单独安装它。(查看
    manexpect
    了解更多详细信息。)我熟悉expect。你认为它在这里怎么用?至于--http密码/用户选项,它们不支持基于表单的身份验证。哦,是基于表单的身份验证吗?问题中没有提到它,或者可能我错过了它…尝试:
    anton@hostname~$curl-c-d“txtsername=admin&txtPassword=admin”http://1.1.1.1:4884/FormLoginAuth.aspx
    。结果:
    FormLoginAuth.aspx
    的来源打印到
    stdout
    。使用
    --data=“txtsername=admin&txtPassword=admin”时的结果相同