URLDownloadToFile 下载文件,但是返回错误INET_E_INVALID_CERTIFICATE,证书无效,该怎么解决

D_Future 2016-01-26 09:52:23

HRESULT hr = URLDownloadToFile(NULL,
_T("https://192.168.1.100:9999/cgi-bin/fileget.cgi?username=operator&password=password&action=rcdownload&filename=recording/13700080270/20160125-175316-801-13700080270-1453715588.23-6.wav"),
_T("d:\\1.wav"), NULL, NULL);




现在该怎么解决,还有其他函数,还是有什么办法忽略证书进行下载。
...全文
7063 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
starnight_cyber 2017-06-19
  • 打赏
  • 举报
回复
引用 12 楼 baddy1211 的回复:
都说了 HTTPS 是需要SSL证书的 你本地192.168.x.x 肯定是没有哪个机构给你颁发SSL证书 所以 你本地 必须是HTTP 然后说到 HTTP无法下载的问题 那是因为你没有做 mime 头处理 修改 mime 添加.wav 为application/octet-stream格式 就可以了
那假如在本机[局域网]搭建了一个HTTPS的应用,那要访问的话肯定是"https://192.168.xxx.xxx/..." 为什么 "你本地 必须是HTTP"
D_Future 2016-02-02
  • 打赏
  • 举报
回复
在网上又寻找了一个其他的方式,用RLIB 开源库中的System::Net::WebClient::DownloadFile()函数进行下载就可以了 虽然没有找到解决上一个函数无法忽略证书的办法,先做完项目在继续寻找吧,感谢各位牛人帮忙分析,十分感谢!!
赵4老师 2016-02-01
  • 打赏
  • 举报
回复
点证书信息,在弹出的证书查看和管理对话框中将该证书添加到受信任证书列表中再试试看。
D_Future 2016-02-01
  • 打赏
  • 举报
回复
@赵4老师 @oyljerry @Wenxy @Eleven 麻烦各位高手了
D_Future 2016-02-01
  • 打赏
  • 举报
回复
引用 5 楼 baddy1211 的回复:
https 是SSL 协议 你是本地192.168的地址 肯定不能用https咯
把https 改成 http


我刚刚试了下 http在网页上直接输入网址无法下载文件,而https就能正常下载。



函数则返回错误代码 INET_E_DOWNLOAD_FAILURE (800C0008)
D_Future 2016-02-01
  • 打赏
  • 举报
回复
引用 13 楼 baddy1211 的回复:
还有 看你最后那部分的英文说明 说你用了http去访问了https的端口 那肯定不对啊 你http就http端口 比如是80 然后https端口是9999(默认HTTPS是443端口) 你不能用http://xxx.xxx.xx.:9999/xxx 去访问 因为你用了http的数据去请求ssl数据 肯定不对拉
我的QQ 280408424 麻烦您加我一下 这样沟通有点麻烦 感谢了
D_Future 2016-02-01
  • 打赏
  • 举报
回复
引用 13 楼 baddy1211 的回复:
还有 看你最后那部分的英文说明 说你用了http去访问了https的端口 那肯定不对啊 你http就http端口 比如是80 然后https端口是9999(默认HTTPS是443端口) 你不能用http://xxx.xxx.xx.:9999/xxx 去访问 因为你用了http的数据去请求ssl数据 肯定不对拉
大侠 能给个联系方式么。不会打扰你很长时间,貌似端口就是9999,这是一个交换机的访问网址,类似路由器,我没法改他那边的端口,怎么才能规避一下呢,只要能通过证书验证就好,不管是忽略证书 还是让证书有效
baddy1211 2016-02-01
  • 打赏
  • 举报
回复
都说了 HTTPS 是需要SSL证书的 你本地192.168.x.x 肯定是没有哪个机构给你颁发SSL证书 所以 你本地 必须是HTTP 然后说到 HTTP无法下载的问题 那是因为你没有做 mime 头处理 修改 mime 添加.wav 为application/octet-stream格式 就可以了
baddy1211 2016-02-01
  • 打赏
  • 举报
回复
还有 看你最后那部分的英文说明 说你用了http去访问了https的端口 那肯定不对啊 你http就http端口 比如是80 然后https端口是9999(默认HTTPS是443端口) 你不能用http://xxx.xxx.xx.:9999/xxx 去访问 因为你用了http的数据去请求ssl数据 肯定不对拉
赵4老师 2016-02-01
  • 打赏
  • 举报
回复
局域网你映射网络驱动器不就行了。
赵4老师 2016-02-01
  • 打赏
  • 举报
回复
参考5楼?
D_Future 2016-02-01
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
点证书信息,在弹出的证书查看和管理对话框中将该证书添加到受信任证书列表中再试试看。


我找到了一种添加受信任证书的办法
http://www.docin.com/p-291773324.html



结果依然没效果 网页的直接登录依然提示证书错误,api则继续报错
baddy1211 2016-01-28
  • 打赏
  • 举报
回复
https 是SSL 协议 你是本地192.168的地址 肯定不能用https咯 把https 改成 http
D_Future 2016-01-27
  • 打赏
  • 举报
回复
顶一下 求帮助
D_Future 2016-01-26
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:


hres = URLDownloadToFile( NULL, strUrl, strFile, BINDF_GETNEWESTVERSION |
BINDF_IGNORESECURITYPROBLEM, &bsc );

版主你好,我把第四个参数换成您给我的样子,试了一下 依然不可以,这两个参数的意思是什么呢,百度bingmeiy请问第五个参数是不是必要的,如果是必要的是什么意思呢?
oyljerry 2016-01-26
  • 打赏
  • 举报
回复


hres = URLDownloadToFile( NULL, strUrl, strFile, BINDF_GETNEWESTVERSION |
BINDF_IGNORESECURITYPROBLEM, &bsc );

D_Future 2016-01-26
  • 打赏
  • 举报
回复
顶一下 哪位大神能帮忙看一下问题 感激不尽

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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