Get /down/Freeware(1).zip Http/1.1
Accept:*/*
Host:jy.newhua.com
User-Agent:Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MAXTHON 2.0)
Connection:Keep-Alive这是一个请求某个文件的 头
但是返回 HTTP/1.1 400 Bad Request
感觉没什么问题啊
Accept:*/*
Host:jy.newhua.com
User-Agent:Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MAXTHON 2.0)
Connection:Keep-Alive这是一个请求某个文件的 头
但是返回 HTTP/1.1 400 Bad Request
感觉没什么问题啊
GET /down/Freeware(1).zip HTTP/1.1
Accept:*/*
Host:jy.newhua.com
User-Agent:Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MAXTHON 2.0)
Connection:Keep-Alive返回的信息需要重定位
这些和迅雷返回的东西是一样的
但是 迅雷重定位后可以得到文件数据了
但是我得到确是一个网页。。
咋回事啊
HRESULT CInternet32File::HTTPGetfile(const TCHAR* sUrl, CString& rContent,DWORD dwTimeout)
{
HRESULT rReturn=S_FALSE;
// 建立Internet网络环境全局对象,负责驱动获取http文件
CInternetSession* pSession=new CInternetSession();
CInternetFile* pUrlFile=NULL;// 指向文件内容对象
rContent=_T("");// 清楚上次的内容
try{
// 连接http服务器,并打开Url文件,开始对当前Section缓存文件内容
if ((pUrlFile=(CInternetFile*)pSession->OpenURL(sUrl))!=NULL)
{
CString strLine;//添加文件内容到列表框中
for (int i=0; pUrlFile->ReadString(strLine); i++)
{
rContent += strLine;
strLine;
}
pUrlFile->Close();
rReturn=S_OK;
}
}
catch(CInternetException* e){
pUrlFile=NULL;
e->Delete();
}
delete pSession;
return rReturn;
}
用MFC我就不发贴了。
解析报头中的:Location: 得到新的Url
如果新的URL与旧的URL在同一个域(域名相同):需要关注Cookie
同时传送旧的URL,"Referer:",是安全的做法web服务器可能验证cookie和referer,如果通不过验证,则返回HTML页面
拜托各位能对自己的回答负责吗 。
非常 感谢LS的