怎么用HTTP将网上的图片下载下来,求例子(最好是socket实现的)。

sjjwind 2012-03-07 07:44:52
RT
...全文
194 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjjwind 2012-03-11
  • 打赏
  • 举报
回复
非常感谢各位,加分。
sjjwind 2012-03-10
  • 打赏
  • 举报
回复
除了这个方法呢?最好是socket实现的。
__lhy 2012-03-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 rrrfff 的回复:]

引用 13 楼 qq752923276 的回复:

上面的实例还是URLDownToFile下载
看看这个http://www.vckbase.com/document/viewdoc/?id=1208


System::Net::HttpRequest是RLIB中提供的HTTP访问类, 其实现方式是System::Net::Sockets而非URLDownToFile.
[/Quote]
你弄错了 我说11L哦
RLib 2012-03-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 qq752923276 的回复:]

上面的实例还是URLDownToFile下载
看看这个http://www.vckbase.com/document/viewdoc/?id=1208
[/Quote]

System::Net::HttpRequest是RLIB中提供的HTTP访问类, 其实现方式是System::Net::Sockets而非URLDownToFile.
__lhy 2012-03-10
  • 打赏
  • 举报
回复
上面的实例还是URLDownToFile下载
看看这个http://www.vckbase.com/document/viewdoc/?id=1208
RLib 2012-03-10
  • 打赏
  • 举报
回复

void DownloadFromInternet(System::String Url, System::String Path)
{
//创建 HttpRequest 请求对象
System::Net::HttpRequest *Request = new System::Net::HttpRequest(Url);
//内存允许情况下, 返回的指针总是可用的
if (!Request) return;
//初始化Request以适合我们的要求
Request->Method = T("GET");
Request->Timeout = 8000;
Request->UserAgent = T("RLIB Downloader/1.1");
Request->Accept = T("text/xml,application/xml,application/xhtml+xml,text/html;*/*");
Request->Headers.Add("Accept-Charset", "iso-8859-1,utf-8;q=0.7,*;q=0.7");
Request->Headers.Add("Accept-Language", "zh-cn, zh;q=1.0,en;q=0.5,en;q=0.5,en;q=0.5");
Request->Headers.Add("Accept-Encoding", "gzip, deflate, x-gzip, identity; q=0.9");
//获取远程服务器响应对象
System::Net::HttpResponse *Response = Request->GetResponse();
//判断是否出现异常
if (!Response)
{
MessageBox(NULL, Request->GetLastException()->Message, T("REQUEST ERROR"), 0);
goto FAIL;
}
if (Response->GetLastException()->Id != STATUS_SUCCESS)
{
MessageBox(NULL, Response->GetLastException()->Message, T("RESPONSE ERROR"), 0);
Response->Close();
FAIL:
delete Request;
return;
}
//这里表示成功了
System::IO::FileStream *File = System::IO::File::Create(Path, System::IO::File::CreateNewMode);
if (File)
{
File->Write(Response->GetResponseStream()->ObjectData, Response->GetResponseStream()->Length);
if (File->GetLastException()->Id != STATUS_SUCCESS)
{
MessageBox(NULL, File->GetLastException()->Message, T("FILE ERROR"), 0);
}
delete File;
}
Response->Close();
delete Request;
return;
}


调用:

DownloadFromInternet(T("http://avatar.csdn.net/9/B/1/1_rrrfff.jpg"), T("C:\\rrrfff.jpg"));




http://code.google.com/p/rlib/downloads/detail?name=RLIBTest1.1.zip&can=2&q=#makechanges



上面是使用RLIB写的下载网络资源的代码
__lhy 2012-03-10
  • 打赏
  • 举报
回复
__lhy 2012-03-10
  • 打赏
  • 举报
回复
__lhy 2012-03-10
  • 打赏
  • 举报
回复
用socket看看http协议分析 下载使用GET命令
__lhy 2012-03-09
  • 打赏
  • 举报
回复
sjjwind 2012-03-08
  • 打赏
  • 举报
回复
求各位大神指导啊。
zyq_123 2012-03-08
  • 打赏
  • 举报
回复
怎样下载?
zyq_123 2012-03-08
  • 打赏
  • 举报
回复
怎样下载?
sjjwind 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhoujielunzhimi 的回复:]

记得先百度。
这儿有个例子
http://topic.csdn.net/t/20060216/15/4559787.html
[/Quote]
我百度了,学校网的dns出问题了,各种门户网上不去,还好csdn能上,上面的例子不是下载图片的,是单纯连接HTTP的,不是我要找的,不过谢谢你。
sumos 2012-03-07
  • 打赏
  • 举报
回复
记得先百度。
这儿有个例子
http://topic.csdn.net/t/20060216/15/4559787.html

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧