随便发个东西,线程 版的 IdHTTP,模拟登录操作方便多了,带源码(100)

  • 主题发起人 白河愁
  • 开始时间

白河愁

Unregistered / Unconfirmed
GUEST, unregistred user!
好久没发过程序类的东西了,今天无意间写了,就发一下。兼容 Indy 8(?),9,10。自己再封装一下就很好用了。主要是增加了2个函数和一个事件: procedure PostThread(AURL: string; Param: TStringList); procedure GetThread(AURL: string);应该看了就知道怎么用吧,事件返回是 TOnThreadReceive = procedure(ResData: string) of object;很简单的,带了同步功能。下载地址请移步 http://www.ff18.com 白河愁的 Blog
 
你恶心不。。。想提升自己博客知名度也不是这么骗人的。既然说给,怎么死拽着不放,密码不说也叫给?
 
ls的就属于粗枝大叶的人种。再说我认为自己的地方知名度已经足够,不需要刻意提高。
 
thank you very much@@@[:)]
 
感谢一个先。
 
已下载,感谢!
 
二楼的兄弟确实够粗了,密码在RAR文件备注中。
 
白河愁大侠:登录163邮箱如何写?
 
自己写吧,我写了个 SimpleSMTP,基本上任何邮箱都可以发。但若被滥用的话,很快就会被封。
 
白河愁大侠: 用你上面说的那个模拟登录操作procedure PostThread(AURL: string; Param: TStringList);这个可以吗?
 
可以啊,关键是要自己处理好登录的信息。PostThread的好处是如果用来登录然后刷点击的话不用自己写线程而已,对登录本身无帮助。
 
http://www.ff18.com/blog/upload/IdHTTPThread_SRC.zip无意看了这个帖子 大老远跑去下载 发现解压需要密码怎么回事啊?
 
来自:dingbaosheng, 时间:2009-3-17 10:35:02, ID:3948728上楼的兄弟确实够粗了,密码在RAR文件备注中。
 
//==============================================================================// 白河愁 IndyHttp Thread 控件 http://www.ff18.com 广州游戏小组//// Ver 1.00 2009/03/16 第一个版本//==============================================================================unit IdHTTPThreadUnit;interfaceuses Windows, Classes, IdHTTP;type //定义一个事件,以便接收返回信息 TOnThreadReceive = procedure(ResData: string) of object; TIdHTTPThread = class(TIdHTTP) private FOnThreadReceive: TOnThreadReceive; protected { Protected declarations } public //某种意义上重载原来那2个函数 procedure PostThread(AURL: string; Param: TStringList); procedure GetThread(AURL: string); published property OnThreadReceive: TOnThreadReceive read FOnThreadReceive write FOnThreadReceive; end;{ TIdHTTPThreadCore } TIdHTTPThreadCore = class(TThread) private FIdHTTP: TIdHTTP; FParent: TIdHTTPThread; FURL: string; FParam: TStringList; FRes: string; FPost: Boolean; protected procedure Execute; override; procedure DoEvent; public constructor Create(IdHTTPThread: TIdHTTPThread; URL: string; Param: TStringList = nil ; Post: Boolean = False); destructor Destroy; override; published end;procedure Register;implementationprocedure Register;begin RegisterComponents('Kryso NewWork', [TIdHTTPThread]);end;{ TIdHTTPThread }procedure TIdHTTPThread.GetThread(AURL: string);begin TIdHTTPThreadCore.Create(Self, AURL, nil, false);end;procedure TIdHTTPThread.PostThread(AURL: string; Param: TStringList);begin TIdHTTPThreadCore.Create(Self, AURL, Param, True);end;{ TIdHTTPThreadCore }constructor TIdHTTPThreadCore.Create(IdHTTPThread: TIdHTTPThread; URL: string; Param: TStringList = nil; Post: Boolean = False);begin inherited Create(True); FParent:= IDHTTPThread; FURL:= URL; FPost:= Post; if FPost then begin FParam:= TStringList.Create; FParam.Text:= Param.Text; end; FIdHTTP:= TIdHTTP.Create(nil); FIdHTTP.AuthRetries:= FParent.AuthRetries; FIdHTTP.AllowCookies:= FParent.AllowCookies; FIdHTTP.HandleRedirects:= FParent.HandleRedirects; FIdHTTP.ProtocolVersion:= FParent.ProtocolVersion; FIdHTTP.RedirectMaximum:= FParent.RedirectMaximum; FIdHTTP.ProxyParams:= FParent.ProxyParams; FIdHTTP.Request:= FParent.Request; FIdHTTP.HTTPOptions:= FParent.HTTPOptions; FIdHTTP.Host:= FParent.Host; FIdHTTP.Port:= FParent.Port; FIdHTTP.OnRedirect:= FParent.OnRedirect; FIdHTTP.OnSelectAuthorization:= FParent.OnSelectAuthorization; FIdHTTP.OnSelectProxyAuthorization:= FParent.OnSelectProxyAuthorization; FIdHTTP.OnAuthorization:= FParent.OnAuthorization; FIdHTTP.OnProxyAuthorization:= FParent.OnProxyAuthorization; FIdHTTP.OnConnected:= FParent.OnConnected; FIdHTTP.OnDisconnected:= FParent.OnDisconnected; FIdHTTP.OnWork:= FParent.OnWork; FIdHTTP.OnWorkBegin:= FParent.OnWorkBegin; FIdHTTP.OnWorkEnd:= FParent.OnWorkEnd; FIdHTTP.OnStatus:= FParent.OnStatus; Self.FreeOnTerminate:= True; Self.Resume;end;destructor TIdHTTPThreadCore.Destroy;begin FIdHTTP.Free; if FPost then FParam.Free; inherited;end;procedure TIdHTTPThreadCore.Execute;begin inherited; while not Self.Terminated do begin FRes:= ''; if FPost then FRes:= FIdHTTP.Post(FURL, FParam) else FRes:= FIdHTTP.Get(FURL); if FRes <> '' then begin Synchronize(DoEvent); Self.Terminate; Self.WaitFor; end; end;end;procedure TIdHTTPThreadCore.DoEvent;begin if Assigned(FParent.OnThreadReceive) then FParent.OnThreadReceive(FRes);end;end.这是什么代码? 没看出厉害在哪.平常在论坛貌似很厉害的白河愁, 难道真的要写东西水平就这样? 理论和实战距离太大. 笑死啦, 哈哈哈.
 
需要厉害吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗? 不需要吗?需要吗?
 
顶部