如何在Linux下使用C ++下载受密码保护的URL?

时间:2012-04-10 18:42:56

标签: c++ linux

首先,我并不想破解任何内容或任何内容。

我是新的软件工程师,我需要登录公司维基页面&下载信息显示在文本文件或其他东西,所以我可以搜索我正在寻找的数据,并根据我从维基页面学到的东西做出dessions。我确实拥有维基页面的用户名和密码,无需中断。

问题是,我无法找到一个很好的方法来做到这一点。我使用的是C ++,操作系统是Linux。

这是我到目前为止所拥有的。这不会发出你的名字和密码。有人可以告诉我如何发出用户名和密码吗?

string line;
system("wget www.cooperateweb.com/wikipage/productpage/FWversions+date");

ifstream file ("index.html");

while (!file.eof())
{
getline(file,line);
cout<<line<<"\n";    }    file.close();

4 个答案:

答案 0 :(得分:5)

与任何网址相同。

scheme://username:password@host/path

答案 1 :(得分:2)

来自TFM

 --user=user
 --password=password
    Specify the username user and password password for both FTP and HTTP
    file retrieval. These parameters can be overridden using the --ftp-user
    and --ftp-password options for FTP connections and the --http-user and
    --http-password options for HTTP connections. 

答案 2 :(得分:0)

最简单的方法,恕我直言,是使用卷曲。 Curl是比wget更复杂的Web客户端。

根据您的需求,最好的方法是基于Boost的cpp-netlib。

答案 3 :(得分:0)

#define MAX_CMD_LENGTH 1000;
char cmdBuffer[MAX_CMD_LENGTH];
/* for sake of demonstration */
char *username = "foo";
char *password = "bar";
sprintf(cmdBuffer, "wget --user=%s --password=%s http://www.cooperateweb.com/wikipage/productpage/FWversions+date", username, password);
char *cmd = malloc(strlen(cmdBuffer) + 1);
strncpy(cmd, cmdBuffer, strlen(cmdBuffer) + 1);
system((const char *)cmd);
free(cmd);