一个程序用wininet实现http请求,url较长有大约4K左右,但在部分XP机器上会出现InternetOpenUrl返回NULL,错误值为6 INVALID_HANDLE。当时调整了各种参数查了各种资料都无法解决,后来干脆直接用socket写了,今天看到一个文章,回想之前的错误应该就是这个原因,wininet实现应该是和ie内核版本相关的。URL的长度限制在服务器端一般在8K左右,所以一般限制取决于客户端,附上那篇文章。
各浏览器HTTP Get请求URL最大长度并不相同,几类常用浏览器最大长度及超过最大长度后提交情况如下:
IE6.0 :url最大长度2083个字符,超过最大长度后无法提交。
IE7.0 :url最大长度2083个字符,超过最大长度后仍然能提交,但是只能传过去2083个字符。 firefox 3.0.3 :url最大长度7764个字符,超过最大长度后无法提交。 Opera 9.52 :url最大长度7648个字符,超过最大长度后无法提交。 Google Chrome 2.0.168 :url最大长度7713个字符,超过最大长度后无法提交。