Ako ziskat udaje z API? – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako ziskat udaje z API? – Java – Fórum – Programujte.comAko ziskat udaje z API? – Java – Fórum – Programujte.com

 

wrany0
Newbie
27. 3. 2015   #1
-
0
-
Nahlásit jako SPAM
IP: 95.105.131.–
ingiraxo+15
Grafoman
27. 3. 2015   #2
-
+1
-
Zajímavé

#1 wrany
však to je Json, prostě si stáhni nějakej json parser (třeba gson od googlu), potom stáhneš obsah tý stránky (třeba přes jsoup) a překlopíš to do java objektu (classy).

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
wrany0
Newbie
29. 3. 2015   #3
-
0
-

Diki, pouzil som gson

public class HelloWorld {
	
	private static String readUrl(String urlString) throws Exception {
        BufferedReader reader = null;
        try {
            URL url = new URL(urlString);
            reader = new BufferedReader(new InputStreamReader(url.openStream()));
            StringBuffer buffer = new StringBuffer();
            int read;
            char[] chars = new char[1024];
            while ((read = reader.read(chars)) != -1)
                buffer.append(chars, 0, read); 

            return buffer.toString();
        } finally {
            if (reader != null)
                reader.close();
        }
    }
	
	static class Page {
	    String damageToday;
	}
	
	
	public static void main(String[] args)  throws Exception {

	    String json = readUrl("http://secura.e-sim.org/apiCitizenById.html?id=30355");

	    Gson gson = new Gson();        
	    Page page = gson.fromJson(json, Page.class);

	    System.out.println(page.damageToday);
  
	} 
}

zatial to mam takto

momentalne je pre mna dolezity udaj Damage today, ktory sa tam kazdy den meni, ja by som potreboval tieto udaje zachytavat kazdy den pre roznych hracov a ukladat ich, nasledne by si ich mal vediet hocikto komu poslem appku vediet pozriet. Asi bude potrebne urobit jednu aplikaciu ktora by ukladala kazdych 24 hod. tieto udaje do databazy? a druhu pre pouzivatelov ktora by ich z DB vytahovala? neviem ci na to idem dobre?

Nahlásit jako SPAM
IP: 95.105.131.–
ingiraxo+15
Grafoman
29. 3. 2015   #4
-
0
-

To není moc dobrá praktika, pokud hráčů bude 1000, tak přece nebudeš posílat 1000 dotazů přes request  (pro každýho hráče zvlášť). To ti za chvíli zablokujou přístup na web.

Samozřejmě, mužeš si udělat app, kterou pustíš někde, kde poběží a bude každých 24h získavat data a ukládat do DB, ale v čem ti to pomůže? Jednak probllém č.1, co jsem už napsal a další je ten, že ostatní uživatelé se stejně nedostanou k tobě do DB (pokud by si chtěl, aby používali přímo tvoji desktopovou app). By si musel udělat nějakej server, kterej by jako prostředník získaval data z DB a posílal je uživatelům do druhý app.

Proč prostě neuděláš app, kde by si uživatel získával přímo jeho data přes request (z json)?

Možná to celý myslíš jinak, ale takto to chápu.

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
wrany0
Newbie
29. 3. 2015   #5
-
0
-

#4 ingiraxo
ten udaj damage today, sa kazdy den resetuje, preto ho potrebujem na konci dna ulozit a nemozem ho poskytovat priamo z jsonu ak si chcem pozriet data z minulosti....

udaje budem potrebovat maximalne pre 50 hracov a client-side appka bude mozno tak pre 5 ludi,

preco by sa nedostali k mojej db? ak bude na servery? sorry ak sa pytam blbosti ale toto je prvy program tohto druhu ktory idem robit

Nahlásit jako SPAM
IP: 95.105.131.–
ingiraxo+15
Grafoman
29. 3. 2015   #6
-
0
-

#5 wrany
a to je tvůj server/web ze kterýho čteš json?

ok, pokud by to bylo jen pro 50 tak je to asi v pohodě, dotazy nemusíš poslat najednou, ale třeba po 5s po uplynutí 24h, aby to serveru nepřišlo jako flooding

protože přístup k DB je pouze z localhostu, tz. že mimo ten stroj, na kterým běží DB se tam nikdo nedostane. Jde to zamozřejmě explicitně povolit, ale dáváš tak přístup do DB úplně každýmu, kdo bude mít tu aplikaci (a tím myslim jako admin). Z toho důvodu se dělá třeba (jsou 3 možnosti):
1) tcp/udp server/client, kde budeš posílat data z DB klientům
2) přes http request (serverová app se bude chovat jako jednoduchej http server)
3) nedělat client app, ale webovou app (třeba i blbej applet)
Ve všech případech, ale potřebuješ veřejnou IP, jinak se ti na serverovou app nikdo nepřipojí

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 32 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý