zoukankan      html  css  js  c++  java
  • 有可能导致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 则执行成功。

  • 相关阅读:
    JS OOP -03 JS类的实现
    python 配置文件__ConfigParser
    1103_ddt 数据处理
    1101_数据处理优化
    了解 ptyhon垃圾回收机制
    10_30_unittest
    10_27_unittest
    10_27_requests模块
    知识积累 哈。。。
    Python练习
  • 原文地址:https://www.cnblogs.com/michaellee/p/1410058.html
Copyright © 2011-2022 走看看