亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nmhttp.pas

?? DELPHI里面一些常用的控件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit NMHttp;
{$X+}
{$R-}

{$IFDEF VER100}
{$DEFINE NMF3}
{$ENDIF}
{$IFDEF VER110}
{$DEFINE NMF3}
{$ENDIF}
{$IFDEF VER120}
{$DEFINE NMF3}
{$ENDIF}
{$IFDEF VER125}
{$DEFINE NMF3}
{$ENDIF}

interface

uses
  SysUtils, Classes, PSock, NMExtstr, NMConst, NMUUE, NMURL, Winsock;
{$IFDEF VER110}
{$OBJEXPORTALL On}
{$ENDIF}
{$IFDEF VER120}
{$OBJEXPORTALL On}
{$ENDIF}
{$IFDEF VER125}
{$OBJEXPORTALL On}
{$ENDIF}

//  CompName='NMHTTP';
//  Major_Version='4';
//  Minor_Version='02';
//  Date_Version='012798';

const {Protocol}
  Prt_gopher = 'gopher';
  Prt_ftp = 'ftp';

  Prt_str_http = ' HTTP/1.0';
  Prox_Head_Str = 'Proxy-Connection: Keep-Alive';
  Prox_Host_Str = 'Host: ';
  Host_Accpt_Str1 = 'Accept: www/source, text/html, video/mpeg, image/jpeg, image/x-tiff';
  Host_Accpt_Str2 = 'Accept: image/x-rgb, image/x-xbm, image/gif, */*, application/postscript';
  Host_UserAgent = 'User-Agent';
  Head_From = 'From';
  Head_Host = 'Host';
  Head_Cookie = 'Cookie';
  Head_Referer = 'Referer';
  Head_Content = 'Content-type: application/x-www-form-urlencoded';
  Head_Link = 'Link: ';
  Head_URI = 'URI-header: ';
  Head_ContentLength = 'Content-Length: ';
  Head_SetCookie = 'SET-COOKIE:';
  Head_CL2 = 'CONTENT-LENGTH:';
  Head_length = 'ENGTH:';
  Head_Location = 'LOCATION:';

  Cmd_Get = 'GET ';
  Cmd_Options = 'OPTIONS ';
  Cmd_Post = 'POST ';
  Cmd_Put = 'PUT ';
  Cmd_Head = 'HEAD ';
  Cmd_Patch = 'PATCH ';
  Cmd_Copy = 'COPY ';
  Cmd_Move = 'MOVE ';
  Cmd_Link = 'LINK ';
  Cmd_Unlink = 'UNLINK ';
  Cmd_Delete = 'DELETE ';
  Cmd_Trace = 'TRACE ';

type
  {HTTP Transaction Type Options}
  CmdType = (CmdGET, CmdOPTIONS, CmdHEAD, CmdPOST, CmdPUT, CmdPATCH, CmdCOPY,
    CmdMOVE, CmdDELETE, CmdLINK, CmdUNLINK, CmdTRACE, CmdWRAPPED, cmdPOSTS);

  HTTPException = class(Exception);
  TResultEvent = procedure(Cmd: CmdType) of object;

  THeaderInfo = class(TPersistent)
  private
    FLocalAddress: string;
    FLocalProgram: string;
    FCookie: string;
    FReferer: string;
    FUserId: string;
    FPassword: string;
    FProxyUserId: string;
    FProxyPassword: string;
  published
    property LocalMailAddress: string read FLocalAddress write FLocalAddress;
    property LocalProgram: string read FLocalProgram write FLocalProgram;
    property Cookie: string read FCookie write FCookie;
    property Referer: string read FReferer write FReferer;
    property UserId: string read FUserId write FUserId;
    property Password: string read FPassword write FPassword;
    property ProxyUserId: string read FProxyUserId write FProxyUserId;
    property ProxyPassword: string read FProxyPassword write FProxyPassword;
  end;

  {*******************************************************************************************
  HTTP Class definition
  ********************************************************************************************}
  TNMHTTP = class(TPowersock)
  private
    FBody: string; {File Name for received file}
    FHeader: string; {File Name for saving Header}
    FSelector: string; {The Selector or Directory string}
    FSendHeader: TexStringList;
    FLocation: string;

    FHeaderInfo: THeaderInfo; {Header Information}

    FCookieIn: string; {Cookie - string}
    FInputFileMode: boolean; {Inputs - File Mode}
    FOutPutFileMode: boolean; {Output - File Mode}
    FEncodePosts: boolean;
    TheSendFile: string;
    FSendStream: TStream; {The name of File to send}
    TheDestURL: string; {The Destination URL in MOVE and COPY commands}
    URL_Holder: string; {Temporary holder for URL}
    ConnType: CmdType; {The Transaction type}

    // URL specifics
    FScheme: string;
    FUser: string;
    FPassword: string;
    FNetworkLocation: string;
    FPort: string;
    FQuery: string;
    FResource: string;
    FParameters: string;
    FPath: string;
    FFragment: string;

    FOnSuccess: TResultEvent; {Pointer to handler of function to execute after all bytes received}
    FOnFailure: TResultEvent;
    FOnAboutToSend: TNotifyEvent;
    FOnRedirect: THandlerEvent;
    FOnAuthenticationNeeded: TNotifyEvent;
//    FOnProxyAuthenticationNeeded: TNotifyEvent;

  protected
    procedure HTTPConnect; virtual;
//    procedure ParsetheURL; virtual;
    procedure AssembleHTTPHeader; virtual;
    procedure RemoveHeader; virtual;
    procedure SendHTTP; virtual;

  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure Options(URL: string); virtual;
    procedure Get(URL: string); virtual;
    procedure Post(URL, PostData: string); virtual;
    procedure Put(URL, PutData: string); virtual;
    procedure Head(URL: string); virtual;
    procedure Patch(URL, PatchData: string); virtual;
    procedure Delete(URL: string); virtual;
    procedure Trace(URL, TraceData: string); virtual;
    procedure Copy(URL1, URL2: string); virtual;
    procedure Move(URL1, URL2: string); virtual;
    procedure Link(URL, link: string); virtual;
    procedure UnLink(URL, link: string); virtual;
    procedure Wrapped(URL, WrappedData: string); virtual;
    procedure Abort; override;
    procedure PostStream(URL: string; Stream: TStream); virtual;

    property SendHeader: TExStringList read FSendHeader write FSendHeader;
    property CookieIn: string read FCookieIn;

  published
    property OnPacketRecvd;
    property OnPacketSent;
    property Body: string read FBody write FBody;
    property Header: string read FHeader write FHeader;
    property HeaderInfo: THeaderInfo read FHeaderInfo write FHeaderInfo;
    property InputFileMode: boolean read FInputFileMode write FInputFileMode;
    property OutputFileMode: boolean read FOutputFileMode write FOutputFileMode;

    property Proxy;
    property ProxyPort;

    property OnAboutToSend: TNotifyEvent read FOnAboutToSend write FOnAboutToSend;
    property OnSuccess: TResultEvent read FOnSuccess write FOnSuccess;
    property OnFailure: TResultEvent read FOnFailure write FOnFailure;
    property OnRedirect: THandlerEvent read FOnRedirect write FOnRedirect;
    property OnAuthenticationNeeded: TNotifyEvent read FOnAuthenticationNeeded write FOnAuthenticationNeeded;
  end;

  implementation

uses
  URLParse;

{*******************************************************************************************
Create HTTP component
********************************************************************************************}

constructor TNMHTTP.Create(AOwner: TComponent);
begin
  inherited create(AOwner);
  FHeaderInfo := THeaderInfo.create;
  FSendHeader := TExStringList.create;
  FEncodePosts := TRUE;
  FHeader := sHTTP_Head_File; {Default Header File}
  FBody := sHTTP_Body_File;
  FInputFileMode := FALSE; {Inputs - File Mode}
  FOutPutFileMode := FALSE; {Output - File Mode}
  ProxyPort := 8080;
end;

destructor TNMHTTP.Destroy;
begin
  FHeaderInfo.free;
  FSendHeader.free;
  inherited destroy;
end;

{*******************************************************************************************
Get Page given by URL
********************************************************************************************}

procedure TNMHTTP.Get(URL: string);
begin
  ConnType := CmdGET; {Set transaction type to Get}
  URL_Holder := URL; {Set Locator to URL for later}
  HTTPConnect; {Get Page}
end;

{*******************************************************************************************
Get Option given by URL
********************************************************************************************}

procedure TNMHTTP.Options(URL: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  ConnType := CmdOPTIONS; {Set Connection type to get Options}
  HTTPConnect; {Connect to web and get Options}
end;

{*******************************************************************************************
Post File in FileName to given URL
********************************************************************************************}

procedure TNMHTTP.Post(URL, PostData: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  (*
    if FEncodePosts then
      begin
        NMURL1 := TNMURL.create(self);
        try
          if OutPutFileMode then
            begin
            end
          else
            begin
              NMURL1.InputString := postData;
              Postdata := NMURL1.Encode;
            end;
        finally
          NMURL1.Free;
        end;
      end;
  *)
  TheSendFile := PostData; {Set the file to send to filename}
  ConnType := CmdPOST; {Set Connection type to Post}
  HTTPConnect; {Connect to web and post}
end;

{*******************************************************************************************
Put File in FileName to given URL
********************************************************************************************}

procedure TNMHTTP.Put(URL, PutData: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  TheSendFile := PutData; {Set the file to send to filename}
  ConnType := CmdPUT; {Set Connection type to Put}
  HTTPConnect; {Connect to web and put}
end;

{*******************************************************************************************
Get Heading of given URL
********************************************************************************************}

procedure TNMHTTP.Head(URL: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  ConnType := CmdHEAD; {Set Connection type to Head}
  HTTPConnect; {Connect to web and get heading}
end;

{*******************************************************************************************
Patch given URL with given file
********************************************************************************************}

procedure TNMHTTP.Patch(URL, PatchData: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  TheSendFile := Patchdata; {Set the file to send to filename}
  ConnType := CmdPATCH; {Set Connection type to Patch}
  HTTPConnect; {Connect to web and patch}
end;

{*******************************************************************************************
Copy URL1 to URL2
********************************************************************************************}

procedure TNMHTTP.Copy(URL1, URL2: string);
begin
  URL_Holder := URL1; {Set Locator to URL for later}
  TheDestURL := URL2; {Set theDestURL to be used later}
  ConnType := CmdCOPY; {Set Connection type to COPY}
  HTTPConnect; {Connect to web and copy}
end;

{*******************************************************************************************
Move URL1 to URL2
********************************************************************************************}

procedure TNMHTTP.Move(URL1, URL2: string);
begin
  URL_Holder := URL1; {Set Locator to URL for later}
  TheDestURL := URL2; {Set theDestURL to be used later}
  ConnType := CmdMOVE; {Set Connection type to MOVE}
  HTTPConnect; {Connect to web and move}
end;

{*******************************************************************************************
Link URL to Link
********************************************************************************************}

procedure TNMHTTP.Link(URL, Link: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  TheDestURL := Link; {Set theDestURL to link later}
  TheSendFile := sHTTP_Data_File; {Set the file to send to entity.stf}
  ConnType := CmdLINK; {Set Connection type to LINK}
  HTTPConnect; {Connect to web and link}
end;

{*******************************************************************************************
UnLink URL from Link
********************************************************************************************}

procedure TNMHTTP.UnLink(URL, Link: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  TheDestURL := Link; {Set theDestURL to link later}
  TheSendFile := sHTTP_Data_File; {Set the file to send to entity.stf}
  ConnType := CmdUNLINK; {Set Connection type to UNLINK}
  HTTPConnect; {Connect to web and Unlink}
end;

{*******************************************************************************************
Delete URL
********************************************************************************************}

procedure TNMHTTP.Delete(URL: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  ConnType := CmdDELETE; {Set Connection type to DELETE}
  HTTPConnect; {Connect to web and Delete}
end;

{*******************************************************************************************
Request a trace from URL
********************************************************************************************}

procedure TNMHTTP.Trace(URL, TraceData: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  TheSendFile := TraceData; {Set the file to send to entity.stf}
  ConnType := CmdTRACE; {Set Connection type to TRACE}
  HTTPConnect; {Connect to web and TRACE}
end;

{*******************************************************************************************
Send Wrapped command to URL
********************************************************************************************}

procedure TNMHTTP.Wrapped(URL, WrappedData: string);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  TheSendFile := WrappedData; {Set the file to send to entity.stf}
  ConnType := CmdWRAPPED; {Set Connection type to TRACE}
  HTTPConnect; {Connect to web and send WRAPPED}
end;

{*******************************************************************************************
Abort transaction
********************************************************************************************}

procedure TNMHTTP.Abort;
begin
  Wait_Flag := TRUE; {Force fetch to come out of wait loop}
  cancel; {Set Flag to cancel present transaction}
end;

procedure TNMHTTP.PostStream(URL: string; Stream: TStream);
begin
  URL_Holder := URL; {Set Locator to URL for later}
  FSendStream := Stream; {Set the file to send to filename}
  ConnType := CmdPOSTS; {Set Connection type to Post}
  HTTPConnect; {Connect to web and post}
end;

{*******************************************************************************************
Carry out HTTP transaction
********************************************************************************************}

procedure TNMHTTP.HTTPConnect;
var
  Handled: boolean;
  LkHead: string;
  tmp: string;
begin
  repeat
    //ParsetheURL;                                   {Parse the URL to get Host, Port and Selector}
    ParseURL(URL_Holder, FScheme, FUser, FPassword, FNetworkLocation, FPort, FPath, FResource, FParameters, FQuery, FFragment);
    if (FUser <> '') or (FPassword <> '') then
      HeaderInfo.FUserId := FUser;
    HeaderInfo.FPassword := FPassword;
    Port := StrToInt(DefaultPort(FScheme));
    Host := FNetworkLocation;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品丝袜在线| 欧美日高清视频| 亚洲综合区在线| 久久女同互慰一区二区三区| 91麻豆高清视频| 午夜电影网一区| 国产精品视频一区二区三区不卡| 欧美三级中文字幕在线观看| 国产精品影视天天线| 亚洲午夜在线电影| 国产精品天天看| 国产女人aaa级久久久级| 欧美日韩国产精品成人| 成人av在线资源网| 狠狠久久亚洲欧美| 久久99九九99精品| 久久99精品久久久久久国产越南| 一区二区三区在线观看网站| 亚洲欧美怡红院| 亚洲欧洲一区二区三区| 欧美韩日一区二区三区四区| 精品国产乱码久久久久久老虎| 欧美美女bb生活片| 精品视频一区三区九区| 在线一区二区三区| 欧美色涩在线第一页| 欧美视频一区二区在线观看| 91福利精品第一导航| 色综合久久综合网欧美综合网| av一区二区三区在线| 日本精品免费观看高清观看| 99久久国产免费看| 欧美视频在线不卡| 欧美一区二区三区四区视频| 欧美成人一区二区三区片免费| 欧美成人三级电影在线| 久久久一区二区三区| 亚洲欧美另类久久久精品2019 | 懂色av一区二区在线播放| 国产精品一区二区久久精品爱涩 | 精品国产免费人成在线观看| 久久久久久久久免费| 中文字幕免费不卡| 亚洲精品水蜜桃| 日本欧美一区二区三区乱码| 国产一区二区三区四区五区入口 | 国产视频一区在线播放| 国产精品美女久久久久久久久久久 | 最新久久zyz资源站| 亚洲一区欧美一区| 成人av电影免费观看| 欧美一区二区三区免费大片| 国产色产综合色产在线视频| 日日骚欧美日韩| a美女胸又www黄视频久久| 欧美高清视频不卡网| 国产亚洲成年网址在线观看| 亚洲国产日日夜夜| 高清shemale亚洲人妖| 欧美精品日日鲁夜夜添| 中文成人综合网| 国产成人亚洲综合a∨猫咪| 欧美精品在线一区二区| 亚洲精品日韩综合观看成人91| 国产精品夜夜嗨| 2019国产精品| 久草这里只有精品视频| 在线播放中文一区| 亚洲二区在线观看| 欧美在线看片a免费观看| 亚洲视频每日更新| 91精品福利视频| 亚洲激情av在线| 欧美精品v国产精品v日韩精品| 亚洲欧美乱综合| 91福利在线观看| 亚洲精品成人在线| 欧美日韩国产欧美日美国产精品| 一区二区三区在线免费观看| 欧美亚洲日本国产| 香蕉影视欧美成人| 精品国产乱子伦一区| 国产一区二区调教| 日本一区二区三级电影在线观看 | 日韩一级精品视频在线观看| 亚洲自拍偷拍综合| 日韩一级高清毛片| 国产二区国产一区在线观看| 亚洲免费电影在线| 精品粉嫩超白一线天av| 东方欧美亚洲色图在线| 一区二区三区高清| 26uuu另类欧美亚洲曰本| 成人一区在线看| 亚洲在线观看免费视频| 久久网站热最新地址| 99在线精品一区二区三区| 日日夜夜免费精品视频| 国产精品电影院| 日韩一区二区三区精品视频 | 91蜜桃婷婷狠狠久久综合9色| 洋洋成人永久网站入口| 久久影院午夜片一区| 91福利在线免费观看| 国产成a人亚洲精品| 日本亚洲最大的色成网站www| 中文字幕欧美日本乱码一线二线| 欧美午夜精品电影| 91亚洲精品久久久蜜桃网站| 韩国精品免费视频| 免费久久99精品国产| 一区二区视频在线看| 国产三级精品视频| 欧美一级精品在线| 欧美日韩国产一区| 欧美午夜精品一区二区三区| av电影在线观看一区| 福利一区在线观看| 国产精品538一区二区在线| 另类调教123区 | 亚洲国产一区视频| 有码一区二区三区| 亚洲国产人成综合网站| 中文字幕佐山爱一区二区免费| 18欧美乱大交hd1984| 亚洲欧洲日韩综合一区二区| 中文字幕一区二区三区精华液| 国产精品理伦片| 国产精品美女久久久久久久| 久久久国产精品不卡| 久久婷婷久久一区二区三区| 久久天天做天天爱综合色| 国产亲近乱来精品视频| 国产欧美一区二区三区沐欲| 精品理论电影在线观看| 国产喂奶挤奶一区二区三区| 国产午夜精品久久久久久久| 国产精品人人做人人爽人人添| 一区二区三区视频在线观看| 亚洲国产精品久久不卡毛片| 琪琪久久久久日韩精品| 国产精品亚洲а∨天堂免在线| 99视频一区二区三区| 8x8x8国产精品| 欧美极品美女视频| 亚洲精品国久久99热| 蜜桃av一区二区| 91在线码无精品| 久久精品视频在线看| 一区二区成人在线视频 | 波多野结衣视频一区| 欧美日韩激情一区二区三区| 久久久www成人免费毛片麻豆| 亚洲欧美日韩中文播放| 国内精品伊人久久久久av一坑| 一本色道久久综合狠狠躁的推荐| 日韩亚洲欧美成人一区| 国产日产精品1区| 亚洲成a人片在线观看中文| 国产成人免费网站| 日韩丝袜美女视频| 亚洲大尺度视频在线观看| 风流少妇一区二区| www久久精品| 久久99精品久久久久久国产越南 | 国产欧美日韩另类视频免费观看| 日韩二区三区在线观看| 91视频在线看| 亚洲精品中文字幕在线观看| 99r国产精品| 中文字幕亚洲精品在线观看| 99久久久免费精品国产一区二区 | 日韩精品一区第一页| 色综合天天综合| 亚洲精品美国一| 欧洲av在线精品| 亚洲最大成人综合| 欧美三区在线视频| 婷婷国产v国产偷v亚洲高清| 欧美日韩在线一区二区| 亚洲一区自拍偷拍| 色婷婷av一区二区三区gif| 成人欧美一区二区三区| 91浏览器在线视频| 自拍偷拍亚洲激情| 欧美日韩国产三级| 国产一区二区三区高清播放| 国产欧美精品一区二区三区四区| 99久久伊人网影院| 亚洲国产cao| 国产日韩欧美亚洲| 色屁屁一区二区| 麻豆国产91在线播放| 国产亚洲综合色| 欧美性猛交xxxx乱大交退制版| 日韩高清不卡一区二区三区| 国产精品午夜在线观看| 正在播放一区二区| 波多野结衣在线一区| 日韩精品一级中文字幕精品视频免费观看|