Próbuję użyć interfejsu API Reddit, aby wykonać pewne czynności. Mam wszystko co działa, ale zmieniam strony i loguję się.Nie mogę używać interfejsów API Reddit do logowania
Muszę się zalogować, aby móc korzystać z mojego programu, wiem, jak używać tego pliku, ale nie mogę się zalogować.
Oto kod:
public static Login POST(URL url, String user, String pw) throws IOException
{
String encodedData = URLEncoder.encode("api_type=json&user=" + user +"&passwd="+pw, "UTF-8");
HttpURLConnection ycConnection = null;
ycConnection = (HttpURLConnection) url.openConnection();
ycConnection.setRequestMethod("POST");
ycConnection.setDoOutput(true);
ycConnection.setUseCaches (false);
ycConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
PrintWriter out = new PrintWriter(ycConnection.getOutputStream());
out.print(encodedData.getBytes());
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(ycConnection.getInputStream()));
String response = in.readLine();
Map<String, List<String>> headers = ycConnection.getHeaderFields();
List<String> values = headers.get("Set-Cookie");
String cookieValue = null;
for (java.util.Iterator<String> iter = values.iterator(); iter.hasNext();) {
String v = iter.next();
if (cookieValue == null)
cookieValue = v;
else
cookieValue = cookieValue + ";" + v;
}
return new Login(cookieValue, response);
}
Najbardziej typowy wyjątek pojawia się:
java.io.IOException: Serwer zwrócił kod odpowiedzi HTTP: 504 dla URL: http://www.reddit.com/api/login/kagnito/ na słońcu. net.www.protocol.http.HttpURLConnection.getInputStream (Unknown Source)
Ale mam również otrzymał wiele „nieprawidłowy pa ssword "wiadomości.
Jak mogę rozwiązać ten problem? Byłem w tym przez wiele godzin!
Przy okazji. Właśnie to mam problemy ze zrozumieniem: https://github.com/reddit/reddit/wiki/API%3A-login Nie jestem pewien, jak to POSTOWAĆ? Czy powinien przejść do nagłówka, czy? Nie jestem zaznajomiony z protokołem HTTP. (stąd mój projekt - uczę)
Sprawdź aktualizację do mojego odpowiedź – Strelok