GeoGet

Complete geocaching solutions

User Tools

Site Tools


user:skripty:functions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
user:skripty:functions [2020/05/13 15:04] – [Funkce API GC] gorduser:skripty:functions [2022/06/02 12:43] (current) – [Práce s regulárním výrazy] geby
Line 23: Line 23:
 <code delphi>function HttpAsk(const Method, Url, UploadType, Upload: string; var Download: string): boolean;</code> <code delphi>function HttpAsk(const Method, Url, UploadType, Upload: string; var Download: string): boolean;</code>
   * Provede HTTP/HTTPS dotaz na nějakou webovou stránku. **Method** je název HTTP metody, například 'GET', nebo 'POST'. **Url** je požadované URL. Může obsahovat i HTTP autorizační údaje. **UploadType** je případný MIME-type pro uploadovaná data. Pokud jej nechcete použít, použijte prázdný string. **Upload** obsahuje uploadovaná data. A **Download** obsahuje stáhnutá data. Funkce vrací //True//, pokud komunikace proběhla v pořádku.   * Provede HTTP/HTTPS dotaz na nějakou webovou stránku. **Method** je název HTTP metody, například 'GET', nebo 'POST'. **Url** je požadované URL. Může obsahovat i HTTP autorizační údaje. **UploadType** je případný MIME-type pro uploadovaná data. Pokud jej nechcete použít, použijte prázdný string. **Upload** obsahuje uploadovaná data. A **Download** obsahuje stáhnutá data. Funkce vrací //True//, pokud komunikace proběhla v pořádku.
 +
 +<code delphi>function HttpAskUA(const Method, Url, UploadType, Upload, UserAgent: string; var Download: string): boolean;</code>
 +  * Provede HTTP/HTTPS dotaz na webovou stránku. Na rozdíl od ''HttpAsk()'' umožňuje nastavit hodnotu **User Agent** 
 +  * <wrap tip>Hack:</wrap> funkci lze využít k zadávání i jiných parametrů než je **User Agent** do hlavičky HTTP/HTTPS požadavku
 +    * za hodnotu **User Agent** přidejte CRLF a  pak další parametr, který má být v hlavičce. Může jich být i několik, odělovačem je vždy CRLF
 +    * pokud nechcete **User Agent** zadávat, bude na začátku rovnou CRLF
 +    * tento postup pravděpodobně nebude účinný u parametrů, které GeoGet posílá automaticky
 +    * jako příklad muže být odeslání přihlašovacích údajů
 +<WRAP 92% right>
 +<code delphi>//běžně by se použilo
 +   Url:=https://uživatel:heslo@server.com/...;
 +//ale je také možné použít běžné Url a nastavit
 +   UserAgent:=CRLF+'Authorization uživatel heslo';
 +</code>
 +</WRAP>
 +<WRAP clear></WRAP>
 +    * :!: pokud volání webové stránky vrátí chybovou hodnotu, funkce se vrátí hodnotu ''false'', do návratové proměnné **Download** nepřepíše vrácený text a nebude možné zjisti podrobnosti o chybě ani její číslo (do verze <sup>2.11.5</sup>), od verze <sup>2.11.6</sup> je výsledný dokument vrácen vždy, pokud bylo něco posláno, i když funkce skončí chybou 
 +
 +<code delphi>HttpResultCode():integerl</code>
 +  * funkce vrací návratovou hodnotu z předchozího volání HttpAsk() nebo HttpAskUA() <sup>2.11.6</sup> 
 +
 +<code delphi>HttpResultHeaders():string;</code>
 +  * funkce vrací http hlavičku z předchozího volání HttpAsk() nebo HttpAskUA() <sup>2.11.6</sup> 
  
 <code delphi>function UDPAsk(target, port, value: AnsiString; timeout:integer): AnsiString;</code> <code delphi>function UDPAsk(target, port, value: AnsiString; timeout:integer): AnsiString;</code>
Line 215: Line 238:
  
 ==== Parsování JSON odpovědi z API GC ==== ==== Parsování JSON odpovědi z API GC ====
 +<WRAP 97% right>
 S API se komunikuje výhradně ve formátu JSON. Pro zpracování odpovědí existuje v GeoGetu parser, po jeho vložení S API se komunikuje výhradně ve formátu JSON. Pro zpracování odpovědí existuje v GeoGetu parser, po jeho vložení
  
Line 278: Line 302:
 end; end;
 </code> </code>
 +</WRAP> 
 +<WRAP clear></WRAP>
  
  
Line 415: Line 440:
  
 ===== Práce s regulárním výrazy ===== ===== Práce s regulárním výrazy =====
-Regulární výrazy používají [[http://regexpstudio.com/TRegExpr/Help/RegExp_Syntax.html|syntaxi podobnou Perlu]].+Regulární výrazy používají [[https://regex.sorokin.engineer/en/latest/regular_expressions.html|syntaxi podobnou Perlu]].
  
 <code delphi>function RegexFind(const ARegExpr, AInputStr: string): boolean;</code> <code delphi>function RegexFind(const ARegExpr, AInputStr: string): boolean;</code>
Line 504: Line 529:
 <code delphi>procedure GeoDBSelect(Value: string);</code> <code delphi>procedure GeoDBSelect(Value: string);</code>
   * Zavře aktuální databázi a otevře databázi s udaným jménem. Pokud databáze neexistuje, vyrobí se nová. Stávající databáze ale nesmí mít spuštěnu transakci, jinak bude vyvolána výjimka a běh skriptu se zastaví! <sup>2.2.5</sup>   * Zavře aktuální databázi a otevře databázi s udaným jménem. Pokud databáze neexistuje, vyrobí se nová. Stávající databáze ale nesmí mít spuštěnu transakci, jinak bude vyvolána výjimka a běh skriptu se zastaví! <sup>2.2.5</sup>
 +  * <wrap important></wrap> dojde k vymazání obsahu Busy dialogu
 +
  
 ===== Práce s atributy ===== ===== Práce s atributy =====
user/skripty/functions.txt · Last modified: 2022/06/02 12:43 by geby