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
Last revisionBoth sides next revision
user:skripty:functions [2021/02/15 07:18] – [Obecné funkce] gorduser:skripty:functions [2021/07/23 12:30] – [Práce s databázemi] gord
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 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.txt · Last modified: 2022/06/02 12:43 by geby