小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

網(wǎng)頁內(nèi)容utf8解碼

 quasiceo 2015-11-19
function WinInetDownload(Url:PChar; fs:TStream):Boolean;
var
  hSession : HINTERNET;
  hOpenUrl : HINTERNET;
  Temp     : array [0..MAXBLOCKSIZE-1] of Byte;
  dwRead   : DWORD;


  dwResult : DWORD;
  agent:string;
begin
  Result := False;
  agent:='Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; Coolpad 8122 Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30';
  hSession := InternetOpen(PChar(agent), //指定調(diào)用 WinINet 函數(shù)的應用程序或入口。該入口用作HTTP協(xié)議中用戶代理項。
                           INTERNET_OPEN_TYPE_PRECONFIG,//訪問要求類型,該參數(shù)可為下列值之一:
                           {  INTERNET_OPEN_TYPE_DIRECT 解析所有本地主機;
                              INTERNET_OPEN_TYPE_PRECONFIG 返回注冊表中代理或直接的配置;
                              INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 返回注冊表中代理或直接的配置,并防止對Microsoft Jscript 或 INS文件的使用;
                              INTERNET_OPEN_TYPE_PROXY 為代理傳遞請求,除非代理提供了旁路列表且解析的名字可以繞過代理;此時,函數(shù)使用INTERNET_OPEN_TYPE_DIRECT。}
                           nil, //指定了當lAccessType類型為INTERNET_OPEN_TYPE_PROXY時,代理服務器的名字。
                           nil, //指向一個字符串,它指定一個可選的主機名列表或IP地址,列表可包括未知元素。
                           0);
                           {該參數(shù)可為下列值的任意組合:
                          INTERNET_FLAG_ASYNC 僅能用于作用在該函數(shù)返回的句柄的子句柄上的異步請求。
                          INTERNET_FLAG_FROM_CACHE 不做網(wǎng)絡請求。所有的實體都由緩存返回。如果請求條目不在緩存中,一個適當?shù)腻e誤將返回。
                          INTERNET_FLAG_OFFLINE 與 INTERNET_FLAG_FROM_CACHE 一樣。}
  //成功:返回一個有效的句柄,該句柄將由應用程序傳遞給接下來的WinINet函數(shù)。
  //失?。悍祷豊ULL。

  if hSession = nil then Exit;

  //通過一個完整的FTP,Gopher或HTTP網(wǎng)址打開一個資源。
  hOpenUrl := InternetOpenUrl(hSession, //當前的 Internet 會話句柄。句柄必須由前期的 InternetOpen 調(diào)用返回。
                             Url,      //一個空字符結(jié)束的字符串變量的指針,指定讀取的網(wǎng)址。只有以ftp:, gopher:, http:, 或者 https: 開頭的網(wǎng)址被支持。
                             nil,      //一個空字符結(jié)束的字符串變量的指針,指定發(fā)送到HTTP服務器的頭信息。欲了解更多信息,請參閱HttpSendRequest函數(shù)里lpszHeaders參數(shù)的說明。
                             0,        //額外的頭的大小,以TCHAR為單位。如果這個參數(shù)是-1L并且lpszHeaders不是NULL,lpszHeaders被假設為零終止( ASCIIZ ),而長度被自動計算。
                             0,
                             //INTERNET_FLAG_DONT_CACHE,   //不添加返回實體到緩存
                             {INTERNET_FLAG_EXISTING_CONNECT
                            如果使用相同的必須屬性創(chuàng)建會話,會嘗試利用現(xiàn)有的InternetConnect對象。這只對FTP操作非常有用,因為FTP是唯一在同一會話中執(zhí)行多種操作的協(xié)議。WinINet API 為每個由InternetOpen產(chǎn)生的HINTERNET句柄緩沖一個單獨鏈接句柄。InternetOpenUrl使用此標志的HTTP和FTP連接。
                            INTERNET_FLAG_HYPERLINK
                            當決定何時從網(wǎng)絡重載時,如果服務器沒有返回 Expires time 和 LastModified,那么強制重載。
                            INTERNET_FLAG_IGNORE_CERT_CN_INVALID
                            停用檢查從服務器對必須的主機名稱返回的SSL/PCT-based證書。 WinINet函數(shù)使用簡單的比較匹配主機名稱和通配符的規(guī)則檢查證書。
                            INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
                            停用檢查的SSL/PCT-based的證書的適當?shù)挠行掌凇?br>                            INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
                            禁用檢測這中特殊的重定向。當使用此標志, WinINet 透明允許從HTTPS到HTTP URL的重定向。
                            INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
                            禁用檢測這中特殊的重定向。當使用此標志, WinINet 透明的允許的HTTP到HTTPS URL的重定向。
                            INTERNET_FLAG_KEEP_CONNECTION
                            如果可能的話,為連接使用保活語義。這個標志要求微軟網(wǎng)絡( MSN ),NTLM和其他類型的身份驗證。
                            INTERNET_FLAG_NEED_FILE
                            如果要創(chuàng)建的文件不能被緩存,創(chuàng)建臨時文件。
                            INTERNET_FLAG_NO_AUTH
                            不試圖自動驗證。
                            INTERNET_FLAG_NO_AUTO_REDIRECT
                            不自動處理HttpSendRequest中的重定向。
                            INTERNET_FLAG_NO_CACHE_WRITE
                            不添加返回實體到緩存。
                            INTERNET_FLAG_NO_COOKIES
                            不會自動添加的Cookie頭到請求,并且不自動添加返回的cookie到cookie數(shù)據(jù)庫。
                            INTERNET_FLAG_NO_UI
                            禁用Cookie的對話框。
                            INTERNET_FLAG_PASSIVE
                            使用被動FTP語義。InternetOpenUrl為FTP的文件和目錄使用此標志。
                            INTERNET_FLAG_PRAGMA_NOCACHE
                            即使代理中存在緩存副本,也強制要求由源服務器返回。
                            INTERNET_FLAG_RAW_DATA
                            檢索的Gopher目錄信息時,傳回的數(shù)據(jù)作為GOPHER_FIND_DATA結(jié)構(gòu),如果檢索的FTP目錄信息時,作為一個WIN32_FIND_DATA結(jié)構(gòu)。如果此標志沒有指定,或者請求通過CERN代理創(chuàng)建, InternetOpenUrl返回的HTML版本的目錄。
                            INTERNET_FLAG_RELOAD
                            從原服務器強制下載所要求的文件,對象,或目錄列表,而不是從緩存下載。
                            INTERNET_FLAG_RESYNCHRONIZE
                            重新加載的HTTP資源,如果資源在最后一次下載后已被修改。所有FTP和Gopher資源將被重載。
                            INTERNET_FLAG_SECURE
                            使用安全傳輸語義。這次傳輸使用安全套字節(jié)層/專用通信技術(shù)(的SSL / PCT ),這只有在HTTP請求時有意義。
                              }
                             0);
// 返回值
// 如果已成功建立到FTP,Gopher,或HTTP URL的連接,返回一個有效的句柄,如果連接失敗返回NULL。要檢索特定的錯誤訊息,請GetLastError 。要確定為什么對服務器的訪問被拒絕,請調(diào)用InternetGetLastResponseInfo。
  if hOpenUrl = nil then Exit;



  try
    fs.Seek(0,soBeginning);
    dwRead := 1;
    while (dwRead > 0) do
    begin
      InternetReadFile(hOpenUrl,
                        @Temp,
                        MAXBLOCKSIZE,
                        dwRead);
      fs.Write(Temp,dwRead);
    end;
  finally

    InternetCloseHandle(hOpenUrl);
    InternetCloseHandle(hSession);
  end;
end;

function GetUrl(url:string):Rawbytestring;
var
  URLHTML : TStringStream ;
  ResultStr :string;
begin
   URLHTML := TStringStream.Create('');//, TEncoding.GetEncoding(936));

   WinInetDownload(PChar(Url) ,URLHTML );
   Result :=PAnsiChar(URLHTML.Memory);  //


   URLHTML .free;
end;


{

procedure test(url:string):string;
var
  ResultStr :string;
  rawstr:rawByteString;
begin
   rawStr :=  GetUrl(url);
   ResultStr := UTF8Decode(rawStr);  //
   memo1.Lines.Text:=ResultStr;
end;

}
  
下面這個是字符串轉(zhuǎn)換函數(shù)

function StringChange(URLStr, UTF8str, Encode: Boolean; in_str: string): string;
begin
  Result := in_str;
  try
    if Encode then
    begin
      if URLStr then
      begin
        if UTF8str then

          Result := HTTPEncode(UTF8Encode(Result))
        else
          Result := HTTPEncode(Result);
      end
      else if UTF8str then
        Result := UTF8Encode(Result);
    end
    else
    begin
      if URLStr then
      begin
        if UTF8str then
          Result := HTTPDecode(UTF8Decode(Result))
        else
          Result := UTF8Decode(Result);
      end
      else
      begin
        if UTF8str then
          Result := UTF8Decode(Result);
      end;
    end;
  except
    Result := in_str;
  end;
end;

引用 HTTPApp

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多