用http协议获取下载文件的大小
来源:互联网 发布:ecshop数据库配置文件 编辑:程序博客网 时间:2024/04/30 07:06
//获取http服务器上要下载文件的大小
ULONGLONG GetHttpFileSize( LPCTSTR szUrl)
{
CString strUrl = szUrl;
strUrl.Replace(_T("//"),_T("/"));
CInternetSession Session;
CHttpFile *pHttpFile = NULL;
CString strServerName;
CString strObject; // 查询对象名(http文件)
INTERNET_PORT nPort; // 端口
DWORD dwServiceType; // 服务类型
DWORD dwHttpRequestFlags = INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_RELOAD | INTERNET_FLAG_DONT_CACHE;
const TCHAR szHeaders[]=_T("Accept: */* User-Agent:HttpClient ");
CHttpConnection* pServer = NULL;
//网址分析
BOOL bOK = AfxParseURL(strUrl, dwServiceType, strServerName, strObject, nPort);
bOK = bOK && (dwServiceType == INTERNET_SERVICE_HTTP);
if (FALSE == bOK)
{
return -1;
}
//连接服务器
pServer = Session.GetHttpConnection(strServerName,nPort);
pHttpFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET, strObject, NULL, 1, NULL, NULL, dwHttpRequestFlags);
pHttpFile->AddRequestHeaders(szHeaders);
pHttpFile->SendRequest();
DWORD dwRet;
pHttpFile->QueryInfoStatusCode(dwRet);
char buff[32];
ULONGLONG nTotalSize = 0;
DWORD dwLength = sizeof(nTotalSize);
if (!pHttpFile->QueryInfo(HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER,&nTotalSize, &dwLength))
{
return -1;
}
if (pHttpFile != NULL)
{
pHttpFile->Close();
}
if (pServer != NULL)
{
pServer ->Close();
}
return nTotalSize;
}
- 用http协议获取下载文件的大小
- HTTP协议文件下载
- 获取远程下载文件的大小
- 用java实现基于http协议的网络文件下载
- 用java实现基于http协议的网络文件下载
- 用HTTP协议下载一个MP3文件
- 获取下载文件的大小,从而设置下载进度条
- 根据文件下载链接地址获取文件的大小
- 使用HTTP协议 下载文件
- C++ HTTP协议 下载文件
- 使用HTTP协议下载文件
- HTTP协议实现文件下载
- 获取HTTP 头中响应请求文件的大小
- 获取HTTP 头中响应请求文件的大小
- 获取HTTP 头中响应请求文件的大小
- 从HTTP和FTP上获取单个文件的大小
- 关于inputStream.available()方法获取下载文件的总大小
- 关于inputStream.available()方法获取下载文件的总大小
- Servlet中取不到session值的问题
- 中国企业:何时不再步入品牌误区?
- 可爱小孩与姐姐 猜笑星视频 镇静~~镇静,别笑岔了
- oracle结束死锁进程
- 常见C++库介绍
- 用http协议获取下载文件的大小
- 网页换肤程序(在水平下拉菜单和垂直下拉菜单之间切换)
- 主键和外键的设计原则
- C#编程尽量使用接口来编程
- 内存泄露问题
- 一个女生写的C代码
- 主键和外键的设计原则
- 关于mysql里 主键,外键,默认 联级删除的问题
- X86-64上的Linux VM管理系统