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

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

?? httphelp.pas

?? httpanalyzer, source code for delphi
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit httphelp;
interface

type
   THttpEncoding    = (encUUEncode, encBase64, encMime);

// HTTP::Status code processing
function status_message(code : integer) : string;
function is_info(code : integer) : boolean;
function is_success(code : integer) : boolean;
function is_redirect(code : integer) : boolean;
function is_error(code : integer) : boolean;
function is_client_error(code : integer) : boolean;
function is_server_error(code : integer) : boolean;

{ Syntax of an URL: protocol://[user[:password]@]server[:port]/path }
procedure ParseURL(const URL : String;
                   var Proto, User, Pass, Host, Port, Path : String);

function EncodeLine(Encoding : THttpEncoding;
                     SrcData : PChar; Size : Integer):String;
function EncodeStr(Encoding : THttpEncoding; const Value : String) : String;

function UrlDecode(S : String) : String;

function RFC1123_Date(aDate : TDateTime) : String;
// for HTTP modified since!

function bool2str(bin: boolean) : string;

function header_200 : string;

function header_302(new_url: string) : string;

function start_html(title: string; metastr : string): string;

function h3(str : string): string;
function h2(str : string): string;
function h1(str : string): string;

function end_html : string;

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
const
 CRLF = #13+#10;

 // C_... Constants
 C_POST = 'POST ';
 C_GET = 'GET ';
 C_HEAD = 'HEAD ';

 C_HTTP10 = ' HTTP/1.0';
 C_HTTP11 = ' HTTP/1.1';

 C_ACCEPT = 'Accept: ';
 C_REFERER = 'Referer: ';
 C_ACCEPT_LANGUAGE = 'Accept-Language: ';
 C_CONTENT_TYPE = 'Content-Type: ';
 C_ACCEPT_ENCODING = 'Accept-Encoding: ';
 C_USER_AGENT = 'User-Agent: ';
 C_HOST = 'Host: ';
 C_CONTENT_LENGTH = 'Content-Length: ';
 C_PROXY_CONNECTION = 'Proxy-Connection: ';
 C_PRAGMA = 'Pragma: ';

 C_IF_MODIFIED = 'If-Modified-Since: '; // + RFC1123_Date(FModifiedSince) + ' GMT'
 C_MODIFIED = 'Last-Modified: ';  // ANSWER

 C_IF_MATCH = 'If-None-Match: ';
 C_MATCH = 'ETag: '; // ANSWER

 C_AUTH = 'Authorization: Basic '; // + EncodeStr(encBase64, Username + ':' + Password)
 C_AUTH_PROXY = 'Proxy-Authorization: Basic '; //+ EncodeStr(encBase64, ProxyUsername + ':' + ProxyPassword)


 // DC := Default Constants
 DC_ACCEPT = 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/pdf, */*';
 DC_ACCEPT_LANGUAGE = 'de';
 DC_CONTENT_TYPE = 'application/x-www-form-urlencoded';
 DC_ACCEPT_ENCODING = 'gzip, deflate';
 DC_USER_AGENT = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
 DC_PROXY_CONNECTION = 'no-cache';
 DC_PRAGMA = 'Keep-Alive';

 DC_PORT = '80';
 DC_PROXY_PORT = '8080';

 DC_OK ='200 OK'+CRLF;
 DC_TCP = '6';


const
    bin2uue  : String = '`!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_';
    bin2b64  : String = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    uue2bin  : String = ' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ ';
    b642bin  : String = '~~~~~~~~~~~^~~~_TUVWXYZ[\]~~~|~~~ !"#$%&''()*+,-./0123456789~~~~~~:;<=>?@ABCDEFGHIJKLMNOPQRS';
    linesize = 45;

const
   RC_CONTINUE                         =100;
   RC_SWITCHING_PROTOCOLS              =101;

   RC_OK                               =200;
   RC_CREATED                          =201;
   RC_ACCEPTED                         =202;
   RC_NON_AUTHORITATIVE_INFORMATION    =203;
   RC_NO_CONTENT                       =204;
   RC_RESET_CONTENT                    =205;
   RC_PARTIAL_CONTENT                  =206;

   RC_MULTIPLE_CHOICES                 =300;
   RC_MOVED_PERMANENTLY                =301;
   RC_FOUND                            =302;
   RC_SEE_OTHER                        =303;
   RC_NOT_MODIFIED                     =304;
   RC_USE_PROXY                        =305;
   RC_TEMPORARY_REDIRECT               =307;

   RC_BAD_REQUEST                      =400;
   RC_UNAUTHORIZED                     =401;
   RC_PAYMENT_REQUIRED                 =402;
   RC_FORBIDDEN                        =403;
   RC_NOT_FOUND                        =404;
   RC_METHOD_NOT_ALLOWED               =405;
   RC_NOT_ACCEPTABLE                   =406;
   RC_PROXY_AUTHENTICATION_REQUIRED    =407;
   RC_REQUEST_TIMEOUT                  =408;
   RC_CONFLICT                         =409;
   RC_GONE                             =410;
   RC_LENGTH_REQUIRED                  =411;
   RC_PRECONDITION_FAILED              =412;
   RC_REQUEST_ENTITY_TOO_LARGE         =413;
   RC_REQUEST_URI_TOO_LARGE            =414;
   RC_UNSUPPORTED_MEDIA_TYPE           =415;
   RC_REQUEST_RANGE_NOT_SATISFIABLE    =416;
   RC_EXPECTATION_FAILED               =417;

   RC_INTERNAL_SERVER_ERROR            =500;
   RC_NOT_IMPLEMENTED                  =501;
   RC_BAD_GATEWAY                      =502;
   RC_SERVICE_UNAVAILABLE              =503;
   RC_GATEWAY_TIMEOUT                  =504;
   RC_HTTP_VERSION_NOT_SUPPORTED       =505;


implementation
uses sysutils;

function IsDigit(Ch : Char) : Boolean;
begin
    Result := (ch in ['0'..'9']);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
function IsXDigit(Ch : char) : Boolean;
begin
    Result := (ch in ['0'..'9']) or (ch in ['a'..'f']) or (ch in ['A'..'F']);
end;

function XDigit(Ch : char) : Integer;
begin
    if ch in ['0'..'9'] then
        Result := ord(Ch) - ord('0')
    else
        Result := (ord(Ch) and 15) + 9;
end;


function htoin(value : PChar; len : Integer) : Integer;
var
    i : Integer;
begin
    Result := 0;
    i      := 0;
    while (i < len) and (Value[i] = ' ') do
        i := i + 1;
    while (i < len) and (isxDigit(Value[i])) do begin
        Result := Result * 16 + xdigit(Value[i]);
        i := i + 1;
    end;
end;

function htoi2(value : PChar) : Integer;
begin
    Result := htoin(value, 2);
end;


function UrlDecode(S : String) : String;
var
    I  : Integer;
    Ch : Char;
begin
    Result := '';
    I := 1;
    while (I <= Length(S)) and (S[I] <> '&') do begin
        Ch := S[I];
        if Ch = '%' then begin
            Ch := chr(htoi2(@S[I + 1]));
            Inc(I, 2);
        end
        else if Ch = '+' then
            Ch := ' ';
        Result := Result + Ch;
        Inc(I);
    end;
end;


function status_message(code : integer) : string;
var r : string;
begin;
r:='RC_UNKNOWN_ERROR_CODE';
case code of
   RC_CONTINUE                         : r:='RC_CONTINUE';
   RC_SWITCHING_PROTOCOLS              : r:='RC_SWITCHING_PROTOCOLS';
   RC_OK                               : r:='RC_OK';
   RC_CREATED                          : r:='RC_CREATED';
   RC_ACCEPTED                         : r:='RC_ACCEPTED';
   RC_NON_AUTHORITATIVE_INFORMATION    : r:='RC_NON_AUTHORITATIVE_INFORMATION';
   RC_NO_CONTENT                       : r:='RC_NO_CONTENT';
   RC_RESET_CONTENT                    : r:='RC_RESET_CONTENT';
   RC_PARTIAL_CONTENT                  : r:='RC_PARTIAL_CONTENT';
   RC_MULTIPLE_CHOICES                 : r:='RC_MULTIPLE_CHOICES';
   RC_MOVED_PERMANENTLY                : r:='RC_MOVED_PERMANENTLY';
   RC_FOUND                            : r:='RC_FOUND';
   RC_SEE_OTHER                        : r:='RC_SEE_OTHER';
   RC_NOT_MODIFIED                     : r:='RC_NOT_MODIFIED';
   RC_USE_PROXY                        : r:='RC_USE_PROXY';
   RC_TEMPORARY_REDIRECT               : r:='RC_TEMPORARY_REDIRECT';
   RC_BAD_REQUEST                      : r:='RC_BAD_REQUEST';
   RC_UNAUTHORIZED                     : r:='RC_UNAUTHORIZED';
   RC_PAYMENT_REQUIRED                 : r:='RC_PAYMENT_REQUIRED';
   RC_FORBIDDEN                        : r:='RC_FORBIDDEN';
   RC_NOT_FOUND                        : r:='RC_NOT_FOUND';
   RC_METHOD_NOT_ALLOWED               : r:='RC_METHOD_NOT_ALLOWED';
   RC_NOT_ACCEPTABLE                   : r:='RC_NOT_ACCEPTABLE';
   RC_PROXY_AUTHENTICATION_REQUIRED    : r:='RC_PROXY_AUTHENTICATION_REQUIRED';
   RC_REQUEST_TIMEOUT                  : r:='RC_REQUEST_TIMEOUT';
   RC_CONFLICT                         : r:='RC_CONFLICT';
   RC_GONE                             : r:='RC_GONE';
   RC_LENGTH_REQUIRED                  : r:='RC_LENGTH_REQUIRED';
   RC_PRECONDITION_FAILED              : r:='RC_PRECONDITION_FAILED';
   RC_REQUEST_ENTITY_TOO_LARGE         : r:='RC_REQUEST_ENTITY_TOO_LARGE';
   RC_REQUEST_URI_TOO_LARGE            : r:='RC_REQUEST_URI_TOO_LARGE';
   RC_UNSUPPORTED_MEDIA_TYPE           : r:='RC_UNSUPPORTED_MEDIA_TYPE';
   RC_REQUEST_RANGE_NOT_SATISFIABLE    : r:='RC_REQUEST_RANGE_NOT_SATISFIABLE';
   RC_EXPECTATION_FAILED               : r:='RC_EXPECTATION_FAILED';
   RC_INTERNAL_SERVER_ERROR            : r:='RC_INTERNAL_SERVER_ERROR';
   RC_NOT_IMPLEMENTED                  : r:='RC_NOT_IMPLEMENTED';
   RC_BAD_GATEWAY                      : r:='RC_BAD_GATEWAY';
   RC_SERVICE_UNAVAILABLE              : r:='RC_SERVICE_UNAVAILABLE';
   RC_GATEWAY_TIMEOUT                  : r:='RC_GATEWAY_TIMEOUT';
   RC_HTTP_VERSION_NOT_SUPPORTED       : r:='RC_HTTP_VERSION_NOT_SUPPORTED';

end;
status_message:=r;
end;


function is_info(code : integer) : boolean;
(* Return TRUE if $code is an Informational status code.
   This class of status code indicates a provisional response which can't have any content. *)
begin;
   if (code >= 100) and (code < 200) then is_info:=true else is_info:=false;
end;

function is_success(code : integer) : boolean;
(* Return TRUE if $code is a Successful status code. *)
begin;
   if (code >= 200) and (code < 300) then is_success:=true else is_success:=false;
end;

function is_redirect(code : integer) : boolean;
(* Return TRUE if $code is a Redirection status code.
   This class of status code indicates that further action needs to be taken
   by the user agent in order to fulfill the request. *)
begin;
   if (code >= 300) and (code < 400) then is_redirect:=true else is_redirect:=false;
end;

function is_error(code : integer) : boolean;
(* Return TRUE if $code is an Error status code.
   The function return TRUE for both client error or a server error status codes. *)
begin;
   if (code >= 400) and (code < 600) then is_error:=true else is_error:=false;
end;

function is_client_error(code : integer) : boolean;
(* Return TRUE if $code is an Client Error status code.
   This class of status code is intended for cases in which the client seems to have erred. *)
begin;
   if (code >= 400) and (code < 500) then is_client_error:=true else is_client_error:=false;
end;

function is_server_error(code : integer) : boolean;
(* Return TRUE if $code is an Server Error status code.
   This class of status codes is intended for cases in which the server is aware
   that it has erred or is incapable of performing the request. *)
begin;
   if (code >= 500) and (code < 600) then is_server_error:=true else is_server_error:=false;
end;

function bool2str(bin: boolean) : string;
begin;
  if bin=true then bool2str:='Ja' else bool2str:='Nein';
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av午夜影院| 久久精品综合网| 国产精品亚洲视频| 久久夜色精品国产欧美乱极品| 不卡的看片网站| 蜜臀va亚洲va欧美va天堂| 亚洲柠檬福利资源导航| 国产精品美女久久久久久2018 | 国产高清一区日本| 国产精品久久久久久久久免费樱桃 | 国产成人8x视频一区二区| 麻豆国产精品一区二区三区 | 国产精品国产馆在线真实露脸 | 91免费视频网| av亚洲产国偷v产偷v自拍| 中文字幕乱码久久午夜不卡| 国产亚洲短视频| 欧美三级电影一区| 欧美精品粉嫩高潮一区二区| 欧美日本国产一区| 欧美天堂一区二区三区| 岛国精品在线播放| 色菇凉天天综合网| 91久久线看在观草草青青 | 在线欧美日韩国产| 欧美一卡2卡3卡4卡| 欧美国产精品一区二区三区| 欧美激情一区三区| 天天色图综合网| 亚洲精品一二三区| 亚洲成人av一区二区三区| 韩国欧美一区二区| 麻豆国产欧美日韩综合精品二区| 久久aⅴ国产欧美74aaa| 91福利精品视频| 91免费看视频| 在线精品视频免费播放| 久久在线免费观看| 亚洲一区二区三区四区五区中文| 丝袜美腿亚洲色图| 99久久er热在这里只有精品15| 日韩av中文字幕一区二区三区| 国产精品久久久久久久久快鸭| 国产日韩欧美不卡在线| 亚洲成年人影院| 99久久国产免费看| 国产蜜臀97一区二区三区| 亚洲小少妇裸体bbw| 色综合网色综合| 欧美变态tickling挠脚心| 亚洲精品久久嫩草网站秘色| 国产成人精品免费视频网站| 欧美成人精精品一区二区频| 亚洲妇女屁股眼交7| 色美美综合视频| 亚洲国产一区二区三区青草影视| 91无套直看片红桃| 欧美一区二区三区婷婷月色| 国产精品女人毛片| 成人av在线资源| 亚洲欧美在线视频观看| a4yy欧美一区二区三区| 欧美一区二区三区四区久久| 美腿丝袜亚洲色图| 欧美v国产在线一区二区三区| 免费成人结看片| 久久久99久久| 蜜臀va亚洲va欧美va天堂| 91国偷自产一区二区三区成为亚洲经典 | 国产精品污网站| 91精品欧美一区二区三区综合在| 成人黄色国产精品网站大全在线免费观看 | 国产麻豆成人传媒免费观看| 人妖欧美一区二区| 久久久久久久久久久久久夜| 国产高清成人在线| 亚洲在线观看免费视频| 日韩欧美不卡在线观看视频| 波多野结衣精品在线| 亚洲午夜久久久| 国产精品美女久久久久久2018| 欧美人与性动xxxx| 成人在线一区二区三区| 午夜视频在线观看一区二区| 久久精品人人做| 欧美精品xxxxbbbb| 99久久亚洲一区二区三区青草| 日本vs亚洲vs韩国一区三区 | 日韩欧美一级二级| 欧美在线999| 欧美在线一区二区| 成人av电影观看| 奇米综合一区二区三区精品视频| 国产欧美中文在线| 日韩三级在线观看| 91老师国产黑色丝袜在线| 一区二区三区加勒比av| 国产欧美一区二区精品久导航| 色综合天天综合网国产成人综合天| 久久不见久久见免费视频7| 日韩一区二区中文字幕| 成人av午夜电影| 麻豆国产欧美一区二区三区| 国产偷国产偷亚洲高清人白洁| 欧美性大战久久久久久久| 国产一区在线观看视频| 日韩高清一区在线| 久久国产欧美日韩精品| 日韩精品一卡二卡三卡四卡无卡 | 国产精品一级在线| 亚洲一区视频在线观看视频| 亚洲国产精品99久久久久久久久| 日本黄色一区二区| 亚洲一区在线看| 欧美色网一区二区| 日韩久久免费av| 中文字幕中文乱码欧美一区二区| 日韩一区欧美小说| 丝袜亚洲另类欧美| 极品瑜伽女神91| 久久99精品久久久久久| av亚洲产国偷v产偷v自拍| 在线播放日韩导航| 国产精品剧情在线亚洲| 日本欧美久久久久免费播放网| 国产精品一区二区无线| 欧美理论在线播放| 中文字幕一区二区不卡| 美女视频黄频大全不卡视频在线播放| 久久99热狠狠色一区二区| 色狠狠桃花综合| 中国av一区二区三区| 亚洲国产成人tv| 成人av免费网站| 国产视频一区在线播放| 美日韩一级片在线观看| 宅男噜噜噜66一区二区66| 亚洲制服丝袜在线| 色av一区二区| 亚洲人成7777| 成人av网站免费| 中文字幕精品在线不卡| 成人小视频免费在线观看| 2020国产精品| 美女脱光内衣内裤视频久久网站| 懂色av中文字幕一区二区三区| 99久久精品免费看国产免费软件| 91热门视频在线观看| 国产精品久久看| 色综合久久综合中文综合网| 亚洲日本在线天堂| 日本韩国欧美国产| 亚洲蜜臀av乱码久久精品| 男人操女人的视频在线观看欧美| 欧美亚一区二区| 亚洲一区二区不卡免费| 欧美一级片在线看| 玖玖九九国产精品| 精品久久久久久久久久久久久久久久久| 欧美精彩视频一区二区三区| 成人免费看片app下载| 国产欧美日韩不卡免费| 亚洲最新在线观看| 日韩午夜电影av| 91在线免费播放| 久久se精品一区二区| 日韩理论片中文av| 精品成人一区二区三区| 99久久精品国产网站| 久久综合色播五月| 欧美亚洲一区二区在线观看| 免费高清在线一区| 亚洲国产美国国产综合一区二区| 日韩一区二区视频在线观看| 亚洲免费观看高清完整版在线| 欧美日产在线观看| 日韩高清在线不卡| 欧美一卡2卡3卡4卡| 亚洲国产欧美一区二区三区丁香婷| 亚洲成av人片观看| 日韩av电影一区| 日韩美女天天操| 亚洲最大成人网4388xx| 国产麻豆精品在线观看| 成人福利电影精品一区二区在线观看 | 日韩一区二区精品| 色综合久久久久综合| 国产精品综合av一区二区国产馆| 日韩不卡手机在线v区| 日韩欧美一区在线| 日韩视频一区二区在线观看| 日韩精品一区二区三区swag| 久久午夜电影网| 国产精品综合一区二区三区| 亚洲小少妇裸体bbw| 欧美激情一区不卡| 在线视频国内一区二区| 亚瑟在线精品视频| 国产综合色在线视频区| 国产老肥熟一区二区三区|