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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? httpprot.pas

?? 包含常用Internet協(xié)議TCP,UDP、HTTP、FTP、Telnet等
?? PAS
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
        if lowercase(ExtractFileExt(FDocName)) = '.exe' then begin
            if FContentType = 'text/html' then
                ReplaceExt(FDocName, 'htm');
        end;

        StateChange(httpWaitingBody);
        FNext := GetBodyLineNext;
        TriggerHeaderEnd;
        if FReceiveLen > 0 then begin
            SetLength(FLastResponse, FReceiveLen);
            Move(FReceiveBuffer, FLastResponse[1], FReceiveLen);
            GetBodyLineNext;
            FReceiveLen := 0;
        end;
        Exit;
    end;

    FRcvdHeader.Add(FLastResponse);

    nSep := pos(':', FLastResponse);
    if (Copy(FLastResponse, 1, 8) = 'HTTP/1.0') or
       (Copy(FLastResponse, 1, 8) = 'HTTP/1.1') then begin
        FStatusCode   := StrToInt(Copy(FLastResponse, 10, 3));
        FReasonPhrase := Copy(FLastResponse, 14, Length(FLastResponse));
    end
    else if nSep > 0 then begin
        Field := LowerCase(Copy(FLastResponse, 1, nSep - 1));
        { Skip spaces }
        Inc(nSep);
        while (nSep < Length(FLastResponse)) and
              (FLastResponse[nSep] = ' ') do
              Inc(nSep);
        Data  := Copy(FLastResponse, nSep, Length(FLastResponse));
        if Field = 'location' then begin { Change the URL ! }
            { URL with relocations:                 }
            { http://www.webcom.com/~wol2wol/       }
            { http://www.purescience.com/delphi/    }
            { http://www.maintron.com/              }
            { http://www.infoseek.com/AddURL/addurl }
            { http://www.micronpc.com/              }
            { http://www.amazon.com/                }
            FLocationFlag := TRUE;
            if Proxy <> '' then begin
                { We are using a proxy }
                if Data[1] = '/' then begin
                    { Relative location }
                    ParseURL(FPath, proto, user, pass, Host, port, Path);
                    if Proto = '' then
                        Proto := 'http';
                    FLocation := Proto + '://' + Host + Data;
                    FPath     := FLocation;
                end
                else begin
                    ParseURL(Data, proto, user, pass, Host, port, Path);
                    if port <> '' then
                        FPort := port;
                    if (Proto <> '') and (Host <> '') then begin
                        { We have a full relocation URL }
                        FTargetHost := Host;
                        FLocation   := Proto + '://' + Host + Path;
                        FPath       := FLocation;
                    end
                    else begin
                        if Proto = '' then
                            Proto := 'http';
                        if FPath = '' then
                            FLocation := Proto + '://' + FTargetHost + '/' + Host
                        else if Host = '' then
                            FLocation := Proto + '://' + FTargetHost + FPath
                        else
                            FTargetHost := Host;
                    end;
                end;
            end
            { We are not using a proxy }
            else begin
                if Data[1] = '/' then begin
                    { Relative location }
                    FPath     := Data;
                    if Proto = '' then
                        Proto := 'http';
                    FLocation := Proto + '://' + FHostName + FPath;
                end
                else begin
                    ParseURL(Data, proto, user, pass, FHostName, port, FPath);
                    if port <> '' then
                        FPort := port;
                    if (Proto <> '') and (FHostName <> '') then begin
                        { We have a full relocation URL }
                        FTargetHost := FHostName;
                        if FPath = '' then begin
                            FPath := '/';
                            FLocation := Proto + '://' + FHostName;
                        end
                        else
                            FLocation := Proto + '://' + FHostName + FPath;
                    end
                    else begin
                        if Proto = '' then
                            Proto := 'http';
                        if FPath = '' then begin
                            FLocation := Proto + '://' + FTargetHost + '/' + FHostName;
                            FHostName := FTargetHost;
                            FPath     := FLocation;          { 26/11/99 }
                        end
                        else if FHostName = '' then begin
                            FLocation := Proto + '://' + FTargetHost + FPath;
                            FHostName := FTargetHost;
                        end
                        else
                            FTargetHost := FHostName;
                    end;
                end;
            end;
        end
        else if Field = 'content-length' then
            FContentLength := StrToInt(Data)
        else if Field = 'content-range' then begin                             {JMR!! Added this line!!!}
            tmpInt := Pos('-', Data) + 1;                                      {JMR!! Added this line!!!}
            FContentRangeBegin := Copy(Data, 7, tmpInt-8);                     {JMR!! Added this line!!!}
            FContentRangeEnd   := Copy(Data, tmpInt, Pos('/', Data) - tmpInt); {JMR!! Added this line!!!}
        end                                                                    {JMR!! Added this line!!!}
        else if Field = 'accept-ranges' then
            FAcceptRanges := Data
        else if Field = 'content-type' then
            FContentType := LowerCase(Data)
        else if Field = 'www-authenticate' then
            FDoAuthor.add(Data)
        else if Field = 'set-cookie' then begin
            bAccept := TRUE;
            TriggerCookie(Data, bAccept);
        end
    {   else if Field = 'date' then }
    {   else if Field = 'mime-version' then }
    {   else if Field = 'pragma' then }
    {   else if Field = 'allow' then }
    {   else if Field = 'server' then }
    {   else if Field = 'content-encoding' then }
    {   else if Field = 'expires' then }
    {   else if Field = 'last-modified' then }
   end
   else { Ignore  all other responses }
       ;

    if Assigned(FOnHeaderData) then
        FOnHeaderData(Self);

    if FStatusCode >= 400 then
        FWSocket.Close;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure THttpCli.DoRequestAsync(Rq : THttpRequest);
var
    Proto, User, Pass, Host, Port, Path: String;
    I : Integer;
begin
    if FState <> httpReady then
        raise EHttpException.Create('HTTP component is busy', httperrBusy);

    if (Rq = httpPOST) and (not Assigned(FSendStream)) then
        raise EHttpException.Create('HTTP component has nothing to post',
                                    httperrNoData);

    FRcvdHeader.Clear;
    FRequestType      := Rq;
    FRequestDoneError := 0;
    FWSocket.OnSessionClosed  := SocketSessionClosed;
    StateChange(httpNotConnected);
    FDocName          := '';
    FStatusCode       := 0;
    FRcvdCount        := 0;
    FSentCount        := 0;
    FHeaderLineCount  := 0;
    FBodyLineCount    := 0;
    FContentLength    := -1;
    FContentType      := '';  { 25/09/1999 }
    FAllowedToSend    := FALSE;
    FLocation         := FURL;

    { parse url and proxy to FHostName, FPath and FPort }
    if FProxy <> '' then begin
        ParseURL(FURL, Proto, User, Pass, Host, Port, Path);
        FTargetHost := Host;
        FPath       := FURL;
        FDocName    := Path;
        if User <> '' then
            FUserName := User;
        if Pass <> '' then
            FPassword := Pass;
        { We need to remove usercode/Password from the URL given to the proxy }
        { but preserve the port                                               }
        if Port <> '' then
            Port := ':' + Port;
        if Proto = '' then
            FPath := 'http://'+ Host + Port + Path
        else
            FPath := Proto + '://' + Host + Port + Path;
        ParseURL(FProxy, Proto, User, Pass, Host, Port, Path);
        if Port = '' then
            Port := ProxyPort;
    end
    else begin
        ParseURL(FURL, Proto, User, Pass, Host, Port, FPath);
        FTargetHost := Host;
        FDocName    := FPath;
        if User <> '' then
            FUserName := User;
        if Pass <> '' then
            FPassword := Pass;
        if Port = '' then
            Port := '80';
    end;
    if Proto = '' then
        Proto := 'http';
    if FPath = '' then
        FPath := '/';
    if (FDocName = '') or (FDocName = '/') then
        FDocName := 'document.htm'
    else begin
        if FDocName[Length(FDocName)] = '/' then
            SetLength(FDocName, Length(FDocName) - 1);
        FDocName := Copy(FDocName, Posn('/', FDocName, -1) + 1, 255);
        I := Pos('?', FDocName);
        if I > 0 then
            FDocName := Copy(FDocName, 1, I - 1);
    end;

    FHostName   := host;
    FPort       := Port;

    { Ask to connect. When connected, we go at SocketSeesionConnected. }
    Login;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure THttpCli.DoRequestSync(Rq : THttpRequest);
begin
    DoRequestAsync(Rq);

{$IFDEF VER80}
    { Delphi 1 has no support for multi-threading }
    while FState <> httpReady do
        Application.ProcessMessages;
{$ELSE}
    if FMultiThreaded then begin
        while FState <> httpReady do begin
            FWSocket.ProcessMessages;
            Sleep(0);
        end;
    end
    else begin
        while FState <> httpReady do begin
            Application.ProcessMessages;
            Sleep(0);
        end;
    end;
{$ENDIF}

    if FStatusCode >= 400 then
        raise EHttpException.Create(FReasonPhrase, FStatusCode);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure THttpCli.LocationSessionClosed(Sender: TObject; Error: Word);
begin
    FConnected    := FALSE;
    FLocationFlag := FALSE;
    { Restore normal session closed event }
    FWSocket.OnSessionClosed := SocketSessionClosed;
    { Trigger the location changed event }
    if Assigned(FOnLocationChange) then
         FOnLocationChange(Self);
    { Restart at login procedure }
    PostMessage(FWindowHandle, WM_HTTP_LOGIN, 0, 0);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure THttpCli.WMHttpLogin(var msg: TMessage);
begin
    Login;
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure THttpCli.SocketSessionClosed(Sender: TObject; Error: Word);
begin
    FConnected := FALSE;
    if FBodyLineCount > 0 then
        TriggerDocEnd;
    SetReady; {StateChange(httpReady);}
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
procedure THttpCli.SocketDataAvailable(Sender: TObject; Error: Word);
var
    Len : Integer;
    I   : Integer;
begin
    I := sizeof(FReceiveBuffer) - FReceiveLen - 1;
    if I <= 0 then
        raise EHttpException.Create('HTTP line too long', httperrOverflow);

    Len := FWSocket.Receive(@FReceiveBuffer[FReceiveLen], I);
{   writeln('Received ', Len, '(asked ', I, ')'); }

    if FRequestType = httpAbort then
        Exit;

    if Len <= 0 then
        Exit;

    FReceiveBuffer[FReceiveLen + Len] := #0;
    FReceiveLen := FReceiveLen + Len;

    if FState = httpWaitingBody then begin
        if FReceiveLen > 0 then begin
            SetLength(FLastResponse, FReceiveLen);
            Move(FReceiveBuffer, FLastResponse[1], FReceiveLen);
            if Assigned(FNext) then
                FNext
            else
                SetReady; {StateChange(httpReady);}
        end;
        FReceiveLen := 0;
        Exit;
    end;

    while FReceiveLen > 0 do begin

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本乱人伦一区| 亚洲午夜三级在线| 91精品国产综合久久精品图片| 岛国一区二区在线观看| 亚洲国产日韩av| 亚洲成人精品一区二区| 亚洲第一成人在线| 午夜亚洲国产au精品一区二区| 一区二区三区在线免费| 亚洲情趣在线观看| 亚洲人成网站在线| 亚洲午夜羞羞片| 天堂资源在线中文精品| 日韩精品久久理论片| 奇米影视7777精品一区二区| 日韩国产欧美在线观看| 久久se这里有精品| 久久不见久久见免费视频7| 精东粉嫩av免费一区二区三区| 精品伊人久久久久7777人| 国产一区不卡视频| 99久久久久久| 欧美日韩在线播放三区| 日韩欧美视频在线| 亚洲国产激情av| 国产成人午夜99999| 国产精品18久久久久久久久| 国产成人一区在线| 99免费精品在线观看| 色婷婷香蕉在线一区二区| 欧洲视频一区二区| 日韩久久精品一区| 国产精品萝li| 亚洲h在线观看| 国产成人精品亚洲777人妖| 99国产精品久久久| 欧美一区二区三区白人| 国产日韩欧美高清| 亚洲国产va精品久久久不卡综合 | 国产精品一区二区久激情瑜伽| 国产91丝袜在线播放| 欧美又粗又大又爽| 久久久久久影视| 亚洲国产精品久久久男人的天堂| 久久国产精品一区二区| 91网站视频在线观看| 日韩欧美在线影院| 亚洲欧美aⅴ...| 国产乱码一区二区三区| 欧美日韩综合在线免费观看| 国产欧美日韩亚州综合| 亚洲国产精品麻豆| 成人av免费在线播放| 日韩三级视频中文字幕| 一区二区三区不卡视频| 国产精品一品二品| 91精品国产日韩91久久久久久| 日本一区二区三区高清不卡| 久久国内精品视频| 欧美日韩一区二区电影| 日韩美女视频一区二区 | 亚洲国产精品t66y| 免费一区二区视频| 欧美日韩精品一区二区| 成人欧美一区二区三区| 国产不卡在线播放| 精品嫩草影院久久| 日韩av不卡一区二区| 欧美视频在线观看一区二区| 综合婷婷亚洲小说| 懂色av一区二区夜夜嗨| 精品国产三级a在线观看| 亚洲成人你懂的| 在线观看三级视频欧美| 亚洲丝袜美腿综合| 97se亚洲国产综合在线| 国产精品萝li| www.成人在线| 1区2区3区国产精品| 成年人网站91| 亚洲人快播电影网| 91久久精品网| 亚洲一区二区高清| 欧美日韩免费高清一区色橹橹 | 久久蜜桃av一区二区天堂| 蜜臀av性久久久久av蜜臀妖精 | 亚洲精品欧美激情| 99国产精品久久久久久久久久 | 日韩影院免费视频| 欧美日韩免费视频| 人人超碰91尤物精品国产| 日韩一区二区三区三四区视频在线观看| 亚洲国产综合在线| 在线电影院国产精品| 蜜芽一区二区三区| 日韩精品一区二区三区四区视频| 国内精品久久久久影院色| 久久伊99综合婷婷久久伊| 国产精品一区一区| 日韩美女视频一区二区 | 亚洲bt欧美bt精品| 在线播放欧美女士性生活| 蜜桃免费网站一区二区三区| 国产亲近乱来精品视频| 色综合久久精品| 久久国产乱子精品免费女| 国产欧美日韩亚州综合| 日本高清成人免费播放| 麻豆精品一区二区三区| 国产欧美一区二区在线观看| 色婷婷av一区二区三区gif| 日韩精品色哟哟| 国产亚洲成aⅴ人片在线观看 | 久久av中文字幕片| 综合久久综合久久| 欧美tickling挠脚心丨vk| www.久久精品| 老司机免费视频一区二区| 亚洲欧洲日产国码二区| 日韩一区二区三区视频在线观看| av在线不卡网| 高清不卡在线观看av| 亚洲欧洲美洲综合色网| 久久综合九色综合97婷婷| 9色porny自拍视频一区二区| 三级欧美在线一区| 亚洲欧洲av色图| 欧美精品一区视频| 欧美亚洲综合久久| 国产91精品一区二区| 视频一区欧美精品| 亚洲精选免费视频| 国产视频911| 91精品国产综合久久精品麻豆| 99精品桃花视频在线观看| 美腿丝袜一区二区三区| 亚洲高清免费视频| 亚洲婷婷综合色高清在线| 久久综合视频网| 日韩欧美综合在线| 欧美日韩精品一区二区天天拍小说| jiyouzz国产精品久久| 国产真实精品久久二三区| 亚瑟在线精品视频| 亚洲视频一区二区在线| 国产日韩亚洲欧美综合| 欧美成人一区二区三区片免费| 欧美系列在线观看| 91亚洲资源网| 91猫先生在线| 97se亚洲国产综合自在线不卡| 不卡的看片网站| 粉嫩一区二区三区性色av| 国产精品一品二品| 国产成人精品免费网站| 国产一区二三区好的| 日韩一卡二卡三卡四卡| 日韩精品中文字幕一区二区三区 | 亚洲成人资源网| 亚洲伦在线观看| 亚洲精品va在线观看| 亚洲综合激情网| 亚洲狠狠爱一区二区三区| 性久久久久久久久久久久| 天天射综合影视| 秋霞成人午夜伦在线观看| 久久99久久久久| 国产精品自在在线| a4yy欧美一区二区三区| 91麻豆国产精品久久| 在线观看日韩精品| 日韩一区二区视频| 国产欧美综合在线| 亚洲免费在线播放| 亚洲国产成人精品视频| 日韩不卡一区二区三区| 国产一区二区三区香蕉| 丁香激情综合国产| 欧美日韩一区二区在线观看| 欧美精品在线观看播放| 精品日韩欧美在线| 亚洲欧洲精品一区二区三区| 亚洲精品亚洲人成人网在线播放| 亚洲国产精品视频| 国产精品白丝jk黑袜喷水| 波多野结衣一区二区三区| 欧洲亚洲精品在线| 2014亚洲片线观看视频免费| 亚洲女同ⅹxx女同tv| 日韩av电影一区| 91麻豆自制传媒国产之光| 欧美日韩一区在线| 国产亲近乱来精品视频| 亚洲综合免费观看高清完整版| 美国一区二区三区在线播放| av网站一区二区三区| 日韩免费视频线观看| 18成人在线视频| 国产乱子伦一区二区三区国色天香| 91网上在线视频|