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 [2021/02/15 07:18] – [Obecné funkce] gorduser:skripty:functions [2022/06/02 12:43] (current) – [Práce s regulárním výrazy] geby
Line 24: Line 24:
   * 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(???): boolean;</code>+<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**    * Provede HTTP/HTTPS dotaz na webovou stránku. Na rozdíl od ''HttpAsk()'' umožňuje nastavit hodnotu **User Agent** 
-  * :FIXME:+  * <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 219: 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 282: Line 302:
 end; end;
 </code> </code>
 +</WRAP> 
 +<WRAP clear></WRAP>
  
  
Line 419: 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 508: 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.1613369890.txt.gz · Last modified: 2021/02/15 07:18 by gord