Přejít k navigační liště

Zdroják » Webdesign » Tvoříme uživatelské skripty pro Operator: používáme POST

Tvoříme uživatelské skripty pro Operator: používáme POST

Články Webdesign

Rozšíření Operator umožňuje uživatelům prohlížeče Firefox používat mikroformáty při každodenní práci s webem. Jeho možnosti lze dále rozšířit pomocí uživatelských skriptů. V dnešní závěrečné části si popíšeme, jak ve skriptech můžete pracovat s požadavky, které jsou vykonávané metodou POST.

V minulých dílech jsme si předvedli vytvoření jednoduchého uživatelského skriptu a představili jsme si i některé pokročilé techniky. Dnes seriál ukončíme posledním dílem zaměřeným na metodu POST.

Celá série o tvorbě uživatelských skriptů pro rozšíření Operator je překladem anglického originálu, jehož autorem je vývojář Operatoru Michael Kaply.

Doposud naše uživatelské skripty spoléhaly na to, že všechny odeslané parametry jsou součástí URL. Používaly totiž metodu GET. Existují ovšem stránky, které data neposílají jako součást URL, ale v těle požadavku. Ty používají metodu POST. Ukážeme si, jak vytvářet požadavky s metodou POST pro využití v akcích Operatoru. Budu předpokládat, že jste již přečetli oba předchozí díly a nějakou tu akci pro Operator jste již vytvořili.

Co je Operator?

Operator je rozšíření prohlížeče Firefox, které uživatelům nabízí rozhraní pro práci s mikroformáty. Více se o používání Operatoru dočtete v článku Operator: snadná práce s mikroformáty ve Firefoxu.

Co jsou mikroformáty?

Mikroformáty je způsob vkládání sémantických informací do HTML dokumentů. Hodí se pro zápis kontaktů, událostí a mnohých dalších dat. Více se o nich dočtete v našem seriálu Kódujme sémanticky s mikroformáty.

Data požadavku POST jsou před uživatelem skryta, ale my si je chceme zobrazit. Použijeme k tomu rozšíření Live HTTP Headers. Toto rozšíření nám umožní zobrazit, jaká data webová stránka odesílá serveru, a zkopírovat je. V našem demu si vytvoříme akci, která najde nejbližší kurz Finanční Univerzity Dave Ramseyho. Jakmile si zobrazíte stránku, uvidíte formulář, který budeme emulovat. Spusťte Live HTTP Headers, ať vidíte, co se na stránce děje, vyplňte směrovací číslo (ZIP Code) a odešlete formulář.

Rozšíření Live HTTP Headers

Live HTTP Headers vám zobrazí několik požadavků, vás ale zajímá jen ten vrchní. Hledáte zápis podobný tomuhle:

Content-Type: application/x-www-form-urlencoded
Content-Length: 53
intZipCode=78758&intMaxRad=30&image2.x=33&image2.y=11 

Obsahuje důležitou informaci o celém požadavku. Poznáme z něj, že formulář odeslal směrovací číslo (intZipCode), vzdálenost (intMaxRad) a dvě další hodnoty. Naším cílem bude tento požadavek emulovat.

Napřed se podívejte na na hotový skript, ať si uděláte představu, co nás čeká.

Můžete si všimnout, že nejdůležitější část akce je nastavení těla požadavku (proměnná body). Použijeme data z mikroformátu adr pro vytvoření body:

var body = "intZipCode=" + semanticObject["postal-code"] + "&intMaxRad=30"; 

Všimněte si, že jsme vynechali dva poslední parametry, protože nemají na výsledek naší akce žádný efekt.

Dále musíme nastavit správné adresy. Jedná se o dvě URL, tou první je adresa požadavku POST, vidíte ji hned nahoře:

POST /fpu/classfinder/index.cfm?fuseaction=actfindclass 

V našem skriptu před ní přidáme http://www.daveramsey.com a máme kompletní adresu požadavku.

Tou druhou důležitou adresou je referer. Je důležitý, protože některé POST požadavky nefungují správně, pokud jej nemají nastaven. Adresu refereru najdete o něco níže:

Referer: http://www.daveramsey.com/fpu/home/index.cfm?fuseaction=dspSecondaryHeaderContent&intContentId=2997 

Stačí, abychom obě adresy vložili do našeho skriptu a máme hotovo.

A to je všechno. Náš výsledný skript můžete za pomoci Live HTTP Headers snadno upravit, aby fungoval s jakýmkoliv požadavkem POST, který potřebujete.

V některých speciálních případech budete potřebovat, aby Operator v požadavku odeslal soubor. V takovém případě vás odkážu na ukázkový skript, který odesílá vCard službě Dopplr. Funguje podobně, jen tvorba požadavku je poněkud komplikovanější.

Příjemnou zábavu.

Tento text je překladem návodu Creating a Microformat Action User Script that uses POST, jehož autorem je Michael Kaply.

Komentáře

Odebírat
Upozornit na
guest
4 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře
capslock

zalozit zdrojak.root.cz a pak stejne srat clanky ohledne web kravin i na root, dete se bodnout

petrkrcmar

Root se nikdy nevyhýbal vývoji webů, máme několik seriálů o PHP, několik o Ruby či Ruby on Rails a podobně.

Zdroják není samostatný web, ale sekce nebo chcete-li příloha Root.cz. Nemůžete po nás chtít, abychom články, které na něm vycházejí, na Rootu nepropagovali. Kromě toho vás nikdo nenutí články číst, internet je médium, které vám umožňuje selektovat témata. Pokud vás článek nezajímá, přeskočte ho. Jsou tu však jiní čtenáři, které zaujme.

Milan

Ahoj, necetl jsem to cele, ale z letmeho pohledu na clanek bych rad upozornil na plugin TAMPER DATA, ktery umoznije odchytavat a modifikovat komunikaci mezi prohlizecem a serverem. Snad to neni moc off topic.

Stav SIMD v Rustu v roce 2025

Různé
Komentáře: 1
SIMD - neboli Single Instruction, Multiple Data - znamená, že procesor může jednou instrukcí zpracovat více datových prvků najednou. Typicky to znamená, že místo sčítání dvou čísel přičtete dvě sady čísel paralelně. To může přinést výrazné zrychlení například při zpracování obrazu, audia nebo numerických výpočtů. Pokud již SIMD znáte, tato tabulka je vše, co budete potřebovat. A pokud s SIMD teprve začínáte, tabulku pochopíte do konce tohoto článku

GPUI Component: moderní Rust GUI komponenty pro cross-platform desktop aplikace

Různé
Komentáře: 0
GPUI Component je open-source Rust knihovna rozšiřující framework GPUI o více než 60 moderních, nativních a multiplatformních UI komponent. Staví na deklarativním přístupu, stateless renderování a jednoduchém API inspirovaném Reactem či Yew. Díky optimalizovanému výkonu, podpoře témat a flexibilním layoutům umožňuje rychlý vývoj desktopových aplikací, jako je například trading nástroj Longbridge Pro. Knihovna je licencována pod Apache 2.0 a dostupná na GitHubu.