菜鸟有感:编码啊,编码!最终解决方案,不要再纠结!
摘要:关于idhttp取网页源码编码问题,在这里记录最后一次的解决方法,不想再纠结下去,再也伤不起了。(本文内容均在d2010,indy10.55的环境下产生及结束)。 网上只要搜索关于idhttp取网页乱码,idyttp编码问题的文章有一大堆,试了无数,都不满意,最后再这里记录一下个人解决方法。 在IDE中写如下代码,str:=http.get(xxxxx);然后Ctrl跟踪get,会在源码中得到如下一行,也是最关键的一行:Result := ReadStringAsCharset(LResponse, Response.CharSet);很明显,idhttp想给我们做点好事,直接返回解码...
阅读全文
posted @
2012-02-20 16:58
Bach
阅读(4274)
推荐(1) 编辑
D2010,indy10.5.5,一些问题解决方法
摘要:刚从D7转过来有点不习惯,到发贴时都没搞懂string,ansistring,widestring的区别与具体使用环境。 这里主要记录一些在D2010中使用自带INDY10.5.5 post网站的一些问题(主要用于发贴)。 首先,与大家一样,遇到的是使用TIdMultiPartFormDataStream,post中文变乱码(这个乱码不是UTF8那种乱码,是一串“口”),网上说把IdMultipartFormData.pas中的IdRead函数修改,如下:function TIdMultiPartFormDataStream.IdRead(var VBuffer: TIdBytes; ...
阅读全文
posted @
2011-11-30 13:00
Bach
阅读(3806)
推荐(0) 编辑
idhttp数据自动编码
摘要:RT。idhttp的httpOption,默认为[hoForceEncodeParams],即自动编码参数,但是idhttp自动编码有点小问题,如果参数中有" (空格)",会转成“+”,有加号会转成“ (空格)”,问题来了,如果我想提交一个参数,值为一个MD5值(MD5中很可能有“+”),在自动编码过程中,加号被编码成空格,最终导致参数错误。所以,post参数最好还是自己用函数编码,这样比较放心,附上urlEncode函数:function EncodeURL(const InputStr: string): string;var Idx: Integer;begin Re
阅读全文
posted @
2011-10-13 13:30
Bach
阅读(2115)
推荐(0) 编辑
小生长谈:idhttp与cookie
摘要:用关键词“idhttp cookie”在各大搜索引擎得到的结果,大多千篇一律,如果你搜索到这一篇,恭喜你,你有福了。 以下内容测试环境:delphi2007, winxp sp3, indy10。 一、idhttp的自动维护cookie功能。 idhttp的AllowCookies属性默认是true,意思是自动维护cookie,所以,打算用idhttp登陆网站、发贴等操作,只需要设置此属性为true就行了。 二、提交自定义cookie。 如其它帖子所说,设置idhttp的cookie有多种说法,经我测试,以下两条有用: 1:http1.Request.CustomHeaders...
阅读全文
posted @
2011-10-10 16:22
Bach
阅读(9562)
推荐(0) 编辑
跳过度娘的防御机制
摘要:熟悉么?反正我是烦透了!不管他是个什么玩意,暂且把它叫做度娘的防御机制。它很烦?跳过它!怎么跳?看代码:procedure DeleteIECache(httpStr: string); // 清理IE缓存,IE.cookiesvar lpEntryInfo: PInternetCacheEntryInfo; hCacheDir: LongWord; dwEntrySize: LongWord; cachefile: string; begin dwEntrySize := 0; FindFirstUrlCacheEntry(nil, TInterne...
阅读全文
posted @
2011-09-20 16:44
Bach
阅读(1215)
推荐(0) 编辑