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

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.

Seriál: Tvoříme uživatelské skripty pro Operator (3 díly)

  1. Tvoříme uživatelské skripty pro Operator: Základy 2.10.2008
  2. Tvoříme uživatelské skripty pro Operator: pokročilé techniky 8.10.2008
  3. Tvoříme uživatelské skripty pro Operator: používáme POST 10.10.2008

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.

Vystudoval jsem biochemii. Vymyslel jsem a založil Zdroják. Jsem vyhlášeným expertem na likvidaci komentářů. Nejsem váš hodný tatínek, který vás bude brát za ručičku, já jsem zlý moderátor diskusí. Smiřte se s tím!

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 4

Přehled komentářů

capslock nechapu
petrkrcmar Re: nechapu
Milan Tamper data plugin
Martin Hassman Re: Tamper data plugin
Zdroj: https://www.zdrojak.cz/?p=2830