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

     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 则执行成功。

 

 

 

转载于:https://www.cnblogs.com/michaellee/archive/2009/03/12/1410058.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值