Új hozzászólás Aktív témák
-
sutszi
veterán
Érdekes kezdeményezés. Engem az érdekelne hogy pH oldalról mit szólnak ehhez? Hogyan léptetni be a rendszerbe? Jelszó plain textben utazik?
Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
-
Arcanus
aktív tag
Hát, én fejlesztem, ha érdekel hogyan jelentkezek be:
public void login(Context context, String email, String password, AuthStateListener authStateListener) {
if (NetworkUtils.isNetworkAvailable(context)) {
String url = PH.Api.URL_LOGIN;
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
response -> {
Document document = Jsoup.parse(response);
Element page = document.body().getElementById("page");
if (document.title().isEmpty()) {
finishLogin(context, email, password, page.select("img[class=hidden]").first().attr("src"), authStateListener);
} else {
authStateListener.onError(context.getString(R.string.error_occurred_try_again));
}
},
error -> {
Util.logError(User.class, error);
authStateListener.onError(context.getString(R.string.error_occurred_try_again));
}
) {
@Override
public Map<String, String> getParams() throws AuthFailureError {
Map<String, String> headerMap = new HashMap<>();
headerMap.put("email", email);
headerMap.put("pass", password);
headerMap.put("stay", "1");
headerMap.put("no_ip_check", "1");
headerMap.put("leave_others", "1");
return headerMap;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
headers.put("User-agent", PHService.USER_AGENT);
return headers;
}
@Override
protected Response<String> parseNetworkResponse(NetworkResponse response) {
if (response.statusCode == HttpsURLConnection.HTTP_OK) {
Map<String, String> responseHeaders = response.headers;
String rawCookie = responseHeaders.get("Set-Cookie");
if (rawCookie != null) {
CookieSettings cookieSettings = new CookieSettings(context);
List<HttpCookie> httpCookies = HttpCookie.parse(rawCookie);
for (HttpCookie httpCookie : httpCookies) {
cookieSettings.add(httpCookie);
}
}
}
return super.parseNetworkResponse(response);
}
};
Init.getInstance().addToRequestQueue(stringRequest, null);
} else {
authStateListener.onError(context.getString(R.string.no_internet_connection));
}
}Sajnos nem sikerült megoldani, hogy a kapott identifiert (cookie) mindig elfogadja a PH szervere, ezért trükközök. (ezzel később fogok foglalkozni jelenlegi helyzet csak ideiglenes)
A
finishLogin
azért szükséges, mert miután bejelentkezel (weben) a PH átirányít, így az appban is követnem kell, hogy megkapjak minden szükséges adatot.Ezek után a kapott identifiert már szimplán tudom bárhol használni:
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
headers.put("User-agent", USER_AGENT);
headers.put("Cookie", PH.createCookies(context));
return headers;
}Mindezt a Volley library segítségével csinálom.
[ Szerkesztve ]
-
hati
addikt
Vajon mikor fogja blokkolni a ph az appot?
Jól gondolom, hogy pharse-olod a html-t? Ha igen, akkor egy kisebb, célzott változástól megbénulhat az alkalmazás.
Jobb lenne, ha a ph adna egy api-t (pl. json), amivel lehetne kommunikálni.
-
Arcanus
aktív tag
Igen, jól gondolod. Nyugi, annyi változás nem lesz, hogy minden hónapban újra írjam az appot. (3 hónapja nem volt változás, egy design újítás lesz, de akkor sem kell minden elölről írni)
Remélem nem fogja blokkolni. A forráskód nyitott, bármikor bárki megnézheti.. Nincs rejtegetni való. API-t nem hiszem hogy kapunk, ez van.
Meggyi001:
[ Szerkesztve ]
-
veterán
Hát én nagyon reménykedek, hogy az idő múltával javulnak a kisebb hibák (ez a kisebb gond), és hogy használhatom én is, és a többiek is a jövőben, mert nagyon megszoktam már telón, jó dolog ez! Ha minden jól fog menni, sztem sok ezren ezen fogjuk nyomni, sztem.
https://gamergep.hu/
-
elithun
őstag
Majd az új felület után lesz érdekes az álláspontjuk. Ha minden igaz reszponzív lesz, és gondolom a reklámok is szépen követik majd az átrendeződést, és ott már lehet, hogy lesz nézeteltérés.
Az app egyébként király lett.
[ Szerkesztve ]
„Minden egyes tapasztalat közelebb visz a megértéshez.”
-
sutszi
veterán
Köszi. Fent van valami nyilvános git repoban? Érdekelnek a további részletek is.
Egyébként az eddig hozzáállás alapján szerintem az is csoda ha ezt ezt az egész logout posztot nem irtják ki...
Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
Új hozzászólás Aktív témák
- Konzolokról KULTURÁLT módon
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Mászós topik - falmászás, via ferrata, sziklamászás, hegymászás
- Teljes verziós játékok letöltése ingyen
- Épített vízhűtés (nem kompakt) topic
- Ukrajnai háború
- Megérkezett a legújabb és eddigi legátfogóbb 3DMark teszt
- Vezetékes FÜLhallgatók
- Dragon Age: Origins
- Facebook és Messenger
- További aktív témák...
- Gigabyte GA-H81M-DS2 rev:2.1 LGA 1150 alaplap
- IPhone SE2 2020 64GB megkímélt akku 86%
- Asus P8H67 LGA 1155 alaplap
- Bomba ár! Fujitsu LifeBook E754 - i7-4712MQ I 8GB I 128SSD I 15,6" I HDMI I Cam I W10 I Garancia!
- Bomba ár! Fujitsu LifeBook E754 - i5-4GEN I 8GB I 128SSD I 15,6" FHD I HDMI I Cam I W10 I Garancia!
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs