MFC怎么利用CInternetSession、CHttpConnection和CHttpFile下载动态网页中的链接
MFC如何利用CInternetSession、CHttpConnection和CHttpFile下载动态网页中的链接
网址:http://202.158.161.59
URL:http://202.158.161.59/graph_xport.php?local_graph_id=286&rra_id=1&view_type=
登陆页面:http://202.158.161.59/login.php
登陆需要的用户名和密码已知,使用下面的代码可以下载不需要用户名和密码的链接内容,可是下载上述URL就会自动跳转到登陆页面,下载的也是登陆的页面。
新手想请教一下如何才能下载到正确的资源。
------解决方案--------------------
先POST 账号密码进行登录。再下载文件。
具体账号密码要以什么格式POST,抓HTTP包分析就知道了。
以你说的这个网站为例,我手工登录一下,抓到的包是:

一看就很明白了
action=login&login_username=admin&login_password=5201314
是POST提交的数据包内容,login_username=你的账号。login_password=你的密码。
POST的目标地址是http://202.158.161.59/graph_xport.php
------解决方案--------------------
应该是请求必须发送cookie
------解决方案--------------------
先看下载的文件跟正常下载的文件是否内容一样。可能是编码等问题
------解决方案--------------------
pHtFile = pHtCon->OpenRequest(CHttpConnection::HTTP_VERB_GET,strObject);
这里,你应该发起POST请求,而不是GET请求
网址:http://202.158.161.59
URL:http://202.158.161.59/graph_xport.php?local_graph_id=286&rra_id=1&view_type=
登陆页面:http://202.158.161.59/login.php
登陆需要的用户名和密码已知,使用下面的代码可以下载不需要用户名和密码的链接内容,可是下载上述URL就会自动跳转到登陆页面,下载的也是登陆的页面。
新手想请教一下如何才能下载到正确的资源。
MFC
CHttpConnection
------解决方案--------------------
先POST 账号密码进行登录。再下载文件。
具体账号密码要以什么格式POST,抓HTTP包分析就知道了。
以你说的这个网站为例,我手工登录一下,抓到的包是:
一看就很明白了
action=login&login_username=admin&login_password=5201314
是POST提交的数据包内容,login_username=你的账号。login_password=你的密码。
POST的目标地址是http://202.158.161.59/graph_xport.php
------解决方案--------------------
应该是请求必须发送cookie
------解决方案--------------------
先看下载的文件跟正常下载的文件是否内容一样。可能是编码等问题
------解决方案--------------------
pHtFile = pHtCon->OpenRequest(CHttpConnection::HTTP_VERB_GET,strObject);
这里,你应该发起POST请求,而不是GET请求