delphi 使用indy -idHttp 控件post 数据时 会报connection closed Gracefully这个异常的问题。
网上找了很多方法最多的就是
修改:
MyHttp.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';
get百度时,需要修改http头:User-Agent: Mozilla/3.0 (compatible; Indy Library)
因为百度屏蔽了 ‘Indy Library’ 这个客户端标识的。
然而这并没有什么吊用
这样的情况应该是服务器端给了一个断开连接的信息,会不会是因为http协议版本的原因?
默认idhttp在post的时候都是使用的pv1_0版本,也就是http/1.0,通过修改为1.1版本后,软件正常了。
下面是核心代码部分:
MyHttp.HTTPOptions := MyHttp.HTTPOptions + [hoKeepOrigProtocol]; //必须有这行才使设置协议版本生效 MyHttp.ProtocolVersion := pv1_1;