Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: [WP8.1] HTTP client - neaktuální response z webu

Aktivity
Avatar
Matyáš Černohous:15.5.2015 12:29

Zdravím, mám WP 8.1 aplikaci, kde pomocí WEB requestů a JSONu komunikuji s databází. Vše fungovalo v pohodě, ale teď jsem uploadnul PHP scripty pro komunikaci na jiný webhosting a mám problém s daty. Nevím jestli to je aplikací, nebo serverem.

V aplikaci nahrávám data ze stránky pomocí Http requestu

public async void Load()
             string t = txtUser.Text;

            string url = "http://mojestranka.cz/deleteThis/getAllTasks.php?id="+t;

            HttpClient client = new HttpClient();
            var response = await client.GetStringAsync(new Uri(url));
            //var result = await response.Content.ReadAsStringAsync();
            string jsonString = response.ToString();
             .....
            }

data vypadají takhle:

[{"Predmet":"Posudek","Datum":"21.6.2015","Splneno":"Ne","ZbyvaDni":"37","Pripomenuti":"5","Sdileno":"gymla"},{"Predmet":"Abcddd","Datum":"16.5.2015","Splneno":"Ne","ZbyvaDni":"1","Pripomenuti":"5","Sdileno":""}]

PROBLÉM nastává když upravím úkol a odešlu požadavek na refresh přehledu. Chci dostat upravený výpis - např. Posudek změním na Posudek1.

Zavolám metodu

Load()

ale v

var response = await client.GetStringAsync(new Uri(url));

dostávám pořád tu starou hodnotu (když třeba úkol odstraním, tak se mi stejně načte i když je pryč. Když se na kouknu přímo na ten JSON výpis na webu, tak tam se změna projeví hned, takže nevím proč aplikace pořád načítá staré hodnoty. Změna se projeví až potom co aplikaci vypnu a zapnu).

Nemůže to být, že aplikace to má uložený někde v catche ?

Díky

 
Odpovědět
15.5.2015 12:29
Avatar
Odpovídá na Matyáš Černohous
Patrik Valkovič:15.5.2015 12:38

Z netu jsem vyčetl, že WP skutečně cachuje (a to dost agresivně).
Jedno řešení je použít hlavičku "IsModifiedSince"
Dalším řešením by bylo přidávat náhodný řetězec (založený třeba na datu) jako další parametr.
Poslední, co jsem našel, by bylo nastavit "Cache-control"

Více se dozvíš tady
http://stackoverflow.com/…dows-phone-8

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
15.5.2015 12:38
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Patrik Valkovič
Matyáš Černohous:15.5.2015 12:48

Teď jsem si o tom něco taky přečetl a pokud jsem to správně pochopil, tak z cach paměti se to bere jen tehdy, pokud je ten daný řetězec identický s tím, který byl už volaný ?
Takže stačí připojit nějaký identický parametr, nebo modifikovat hlavičku, jak je psané na Stack ?

 
Nahoru Odpovědět
15.5.2015 12:48
Avatar
Odpovídá na Matyáš Černohous
Patrik Valkovič:15.5.2015 12:55

Ano, cachuje se ti konkrétní URL adresa. Když tedy za adresu přidáš náhodný řetězec (který musí být jedinečný), dotaz se ti nezacachuje.
Jednodušší by asi bylo přidat na konec náhodný řetězec. Technicky správně bys měl ale použít hlavičku (i když bude asi komplikovanější). Rozhodnutí je na tobě ;-)

Nahoru Odpovědět
15.5.2015 12:55
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Patrik Valkovič
Matyáš Černohous:15.5.2015 12:59

Díky :) - asi zvolím ten náhodný řetězec. Aplikaci budu prezentovat jako maturitní práci a pak už se k ní nehodlám vracet, takže to budu řešit jednodušší metodou :D

 
Nahoru Odpovědět
15.5.2015 12:59
Avatar
Odpovídá na Matyáš Černohous
Patrik Valkovič:15.5.2015 13:00

Maturitní práci? :D To děláš brzo teda.... :D

Nahoru Odpovědět
15.5.2015 13:00
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Patrik Valkovič
Matyáš Černohous:15.5.2015 13:15

Né, já už jí mám hotovou cca měsíc, ale teď jsem jí nahrával na WP Store a hlavně jsem měnil ten hosting, takže jsem to musel otestovat jestli to jede - nejelo :D By byla sranda, kdybych tam v úterý nastoupil s aplikací, která je funkční na 50% -_- :D

 
Nahoru Odpovědět
15.5.2015 13:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.