注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

_

_

 
 
 

日志

 
 

有可能导致HttpQueryInfo 执行时出现12150 错误的一个原因  

2013-02-16 23:19:18|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

?

WInInet 是微软对FTP HTTP 协议做封装库。通过WInInet 系列函数可以方便的实现基于HTTP FTP协议的文件上传下载。最近做了一个项目也是用到了WInInet实现HTTP协议的文件下载。在此过程中调用HttpQueryInfo可以查询服务器返回的HTTP头中的消息。HttpQueryInfo 本身是针对服务器HTTP头内容的解析函数。该函数实际上是对在缓存在本地的HTTP头内容进行解析,并向调用者返回指定的内容。

实际操作中发现,HttpQueryInfo函数经常会返回 12150 错误,也就是 "The requested header was not found"。比如查询"Content-Length"时。网上的帖子多数会提示程序员,当HTTP头中不含有"Content-Length"时,会导致此问题。我遇到的情况是,通过WireShark抓包发现HTTP头中确有"Content-Length",但是HttpQueryInfo就是查不到的情况。后经调试发现,在调用 InternetConnect 函数时,第二个参数要求传入HTTP服务器域名,若此时传入的域名带有http://协议头,那么就会导致HttpQueryInfo执行失败。若单独写入域名,就正常。比如:给InternetConnect 函数的第二个参数传入http://down.360safe.com/ 就会导致HttpQueryInfo的执行失败;若传入的是down.360safe.com 则执行成功。

  评论这张
 
阅读(914)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017