Lazarus URL rövidítés

A TinyUrl ingyenes szolgáltatásával a hosszú URL-eket lerövidíthetjük, amiket pl. Twitter üzenetekben felhasználhatunk.

A szolgáltatás használatához a következő linket kell meghívni: http://tinyurl.com/api-create.php?url=ide-jön-a-hosszú-url, majd a válaszban megkapjuk a rövidített URL-t:

function TForm1.GetTinyUrl(Url:string):string;
const tinyurl  = 'http://tinyurl.com/api-create.php?url=%s';
      BuffSize = 2048;
var hInter   : HINTERNET;
    UrlHandle: HINTERNET;
    BytesRead: Cardinal;
    Buffer   : Pointer;
begin
  Result:='';
  hInter := InternetOpen('', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if Assigned(hInter) then begin
    GetMem(Buffer,BuffSize);
    try
      UrlHandle := InternetOpenUrl(hInter, PChar(Format(tinyurl,[Url])), nil, 0, INTERNET_FLAG_RELOAD, 0);
      if Assigned(UrlHandle) then begin
        InternetReadFile(UrlHandle, Buffer, BuffSize, BytesRead);
        if BytesRead>0 then SetString(Result, PAnsiChar(Buffer), BytesRead);
        InternetCloseHandle(UrlHandle);
      end;
    finally
      FreeMem(Buffer);
    end;
    InternetCloseHandle(hInter);
  end
end;

A függvény használatához szükség van a WinInet unitra.

Letöltés: LazTinyUrl forráskód, win32 program

Hozzászólások

Én inkább a http://goo.gl -t használom. Szerintem egyszerűbb.

Az a baj(?) ezzel meg pl. a bit.ly-vel, hogy nincs anonim api-ja, kell hozzá felhasználónév vagy api kulcs.