社区
网络编程
帖子详情
问一个WinInet的问题(一直没人回答!各位拜托了!!谢!)
lglabc
2004-01-12 12:00:22
我只是想实现Http下载的控制
可是无论我用MFC还是API结果都是:SendRequest()或HttpOpenRequest()的时候就将整个文件下在完成了(大文件要等很长时间。。)
Read()只是将存在CHttpFile* pFile中的数据读出来罢了,并不是从网络上读到的(因为我把网络断开测试过了!)
我想问问有没有控制的方法,或者就是WinInet的毛病呢!
谢谢!
...全文
54
7
打赏
收藏
问一个WinInet的问题(一直没人回答!各位拜托了!!谢!)
我只是想实现Http下载的控制 可是无论我用MFC还是API结果都是:SendRequest()或HttpOpenRequest()的时候就将整个文件下在完成了(大文件要等很长时间。。) Read()只是将存在CHttpFile* pFile中的数据读出来罢了,并不是从网络上读到的(因为我把网络断开测试过了!) 我想问问有没有控制的方法,或者就是WinInet的毛病呢! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lovemaggic
2004-01-13
打赏
举报
回复
原来是这个函数没有用对HttpSendRequest().
lglabc
2004-01-12
打赏
举报
回复
兄台,这个程序我看了n遍了!!
就是不明白,为什么人家做的时候都好象是从网络上一点点下载数据的,到我这里就变成
先下载再读取了?
我虽然没实现这个程序,不过我的程序和他没什么区别呀!也就是一个是builder,一个是vc!
有没有人实现过这个程序,给我解释一下,我已经困惑好几天了!
这个HttpSendRequest(FhRequest, NULL, 0, NULL, 0);是不是就把数据完全下载了呢?
感激感激!
whwjn
2004-01-12
打赏
举报
回复
http://www.csdn.net/magazine/sourcecode/Topic/0/76.shtm
davemin
2004-01-12
打赏
举报
回复
WinInet 本来就是为上层提供简单接口的。
如果需要控制,可以用win 32 api 可以一点点read , 这应该算是很好的控制的方法
HINTERNET hRootHandle, hOpenUrlHandle;
hRootHandle = InternetOpen(
TEXT("Example"),
INTERNET_OPEN_TYPE_DIRECT,
NULL,
NULL,
0);
hOpenUrlHandle = InternetOpenUrl(
hRootHandle,
TEXT("http://www.LooseSoft.com"),
NULL,
0,
INTERNET_FLAG_RAW_DATA,
0);
//InternetSetOption( hOpenUrlHandle,
int leng = 0;
char lpBuffer[ 1024 ];
while( TRUE )
{
memset( lpBuffer, 0, 1024 );
DWORD dwRead;
BOOL b = InternetReadFile( hOpenUrlHandle,
lpBuffer,
1024,
&dwRead );
if( !b )
break;
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT2 );
pEdit->SetSel( leng, leng );
CString strText = lpBuffer;
strText.Remove( '\r' );
strText.Remove( '\n' );
pEdit->ReplaceSel( strText );
//break;
leng += dwRead;
if( dwRead < 1024 )
break;
}
// Close the handle created by InternetOpenUrl, so that the
// InternetOpen handle can be closed.
InternetCloseHandle(hOpenUrlHandle);
// Close the handle created by InternetOpen.
InternetCloseHandle(hRootHandle);
lglabc
2004-01-12
打赏
举报
回复
呵呵,搞定了,原来是需要写http协议:range: bytes= 8000-9999
辛苦各位了
不过,csdn现在不知是人气不旺,还是知道的人不愿意说,这么简单的问题知道的人一说就ok了!不知道的话,还要费不少力气。。。。
sign。。。
lglabc
2004-01-12
打赏
举报
回复
to:davemin兄
你的意思是wininet不能实现了?用控制的手段来伪装我也可以办到。。
不过http://www.csdn.net/magazine/sourcecode/Topic/0/76.shtm所说的程序难道有一定的欺骗性?
呵呵,如果是这样,我只好改用socket了!用wininet也是想学些东西,真的不行吗?
zhangcrony
2004-01-12
打赏
举报
回复
這個也不懂。觀注中......
C++实现HTTP下载(两种方式:
Win
Inet
和Socket)
1.
Win
Inet
(这种方式很简单,但不是很灵活) 2.
Win
Sock(也就是Socket,这种方式有点繁琐,但是可以自定义发送HTTP的报文头和接收响应头,很灵活) 因作者编程水平有限,错误之处,在所难免,欢迎批评指正。
VB网络编程实例
(已接通) ◆ 02.htm C
Win
Inet
Connection---
一个
封装了
Win
Inet
API函数的类 ◆ 03.htm MODEM通讯意外处理 ◆ 04.htm MsComm 文字传输 ◆ 05.htm PING
一个
IP地址(向它发送
一个
数据包并等待回应)...
MFC编写天气预报
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 框架来编写
一个
天气预报的小程序。MFC是微软为
Win
dows平台提供的一种C++库,它封装了
Win
dows API,使得开发者能够更容易地创建桌面应用程序。在...
C++http下载文件
在IT行业中,网络编程是不可或缺的一部分,特别是在处理文件下载任务时。C++作为
一个
强大的系统级编程语言,可以用来实现各种网络操作,包括HTTP文件下载。本篇将详细讲解如何使用C++结合
Win
INet
库来实现HTTP文件的...
VC读取网页的内容
在VC中实现这一功能,首先需要包含必要的头文件,如`#include <
win
inet
.h>`,并链接相应的库,如`#pragma comment(lib, "
win
inet
.lib")`。然后,你可以创建
一个
`HINTERNET`句柄,用于初始化网络会话和打开URL。下面...
网络编程
18,357
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章