关于URLDownloadtoFile函数

lijiawlm 2009-07-22 11:01:53
我想用URLDownloadtoFile下载下来一个验证码的图片 可是每次下载下来的验证码图片都是一样的 请问一下 这个是为什么??
如何解决这个问题??
...全文
193 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 iceice_0604 的回复:]
这样用下试试看
DeleteFile(m_wszFileName);
DeleteUrlCacheEntry(m_wszURL);
URLDownloadToFile(NULL, m_wszURL, m_wszFileName, 0, NULL);
[/Quote]

Thanks 测试通过

不过还有一个 就是有的验证码
比如
https://ac.sn.chinamobile.com/SSO/servlet/CreateImage
怎么下载不下来图片?? 但是打开页面 却有图片 请问是什么回事?
iceice_0604 2009-07-22
  • 打赏
  • 举报
回复
这样用下试试看
DeleteFile(m_wszFileName);
DeleteUrlCacheEntry(m_wszURL);
URLDownloadToFile(NULL, m_wszURL, m_wszFileName, 0, NULL);
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
...拜托 这个是验证码...我也想他不更新呢
mengjfu 2009-07-22
  • 打赏
  • 举报
回复
URLDownloadToFile函数你都已经指定了地址http://www.sd.chinamobile.com/portal/windows/ValidateCode.jsp
又没有更新,当然始终下载这个图片了。
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
木有人回答???
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
例如
URLDownloadToFile(NULL,"http://www.sd.chinamobile.com/portal/windows/ValidateCode.jsp",strJpgPath,0,NULL);
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
已经弄好了 谢谢!!!!!!
iceice_0604 2009-07-22
  • 打赏
  • 举报
回复

HINTERNET hSession = ::InternetOpen( L"TEST ",
PRE_CONFIG_INTERNET_ACCESS, NULL,
INTERNET_INVALID_PORT_NUMBER, 0) ;

if (hSession == NULL)
{
return FALSE;
}

HINTERNET hConnect = ::InternetConnect(hSession, m_strServerName, INTERNET_DEFAULT_HTTPS_PORT,NULL,NULL,INTERNET_SERVICE_HTTP, 0, 0) ;

if (hConnect == NULL)
{
return FALSE;
}

HINTERNET hHttpFile = ::HttpOpenRequest(hConnect, L"GET", m_strObjectName,
HTTPVersion, szReferrer, 0, INTERNET_FLAG_SECURE , 1);

if (hHttpFile == NULL)
{
return FALSE;
}


int length = wcslen(szHeaders);
BOOL tag = ::HttpAddRequestHeaders(hHttpFile,szHeaders,length,HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE);

::InternetReadFile(hHttpFile,buffer,1024,&dwBytesRead))


给你发一段http获取网页资料的代码吧
因为SSL协议是要验证的
所以你可以在sendrequest的时候把验证信息加进去

我用过类似的POST的方法
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
顶一下
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
木有人帮帮忙吗?
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 henry3695 的回复:]
每次请求跟一串随机的字符串试试,估计是被缓存了
http://www.sd.chinamobile.com/portal/windows/ValidateCode.jsp?rnd=123ddd
[/Quote]
上面的问题解决了
确实是缓存的问题 现在问题是 如何获取https://ac.sn.chinamobile.com/SSO/servlet/CreateImage 类似这样的网站的验证码?
我看你有戏 2009-07-22
  • 打赏
  • 举报
回复
每次请求跟一串随机的字符串试试,估计是被缓存了
http://www.sd.chinamobile.com/portal/windows/ValidateCode.jsp?rnd=123ddd
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
知识...
lijiawlm 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 iceice_0604 的回复:]
这个我就不是非常清楚了

但是我觉得会不会和两个URL不同有关系

你之前的是用的http ,http的连接很简单,是无状态的

后来的是https HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
要比http协议安全

等待高人解答吧

[/Quote]

谢谢 给我增加了HTTP的只是
iceice_0604 2009-07-22
  • 打赏
  • 举报
回复
这个我就不是非常清楚了

但是我觉得会不会和两个URL不同有关系

你之前的是用的http ,http的连接很简单,是无状态的

后来的是https HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
要比http协议安全

等待高人解答吧

64,637

社区成员

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

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