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

Subscribe
Upozornit na
guest
4 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
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.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.