Estoy tratando de usar la API de Reddit para hacer algunas cosas. Tengo todo funcionando, pero cambio de páginas e ingreso.No puedo usar las API de Reddit para iniciar sesión
Necesito iniciar sesión para usar mi programa, sé cómo usar la cookie que obtengo, pero no logro ingresar.
Aquí está el código:
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);
}
La excepción más típica que se ve es:
java.io.IOException: código de respuesta HTTP del servidor volvió: 504 para el URL: http://www.reddit.com/api/login/kagnito/ al sol. net.www.protocol.http.HttpURLConnection.getInputStream (Fuente desconocida)
Pero también he recibido una gran cantidad de "pa no válido ssword "mensajes.
¿Cómo puedo resolver esto? Estado en eso por horas!
Btw. Esto es lo que tengo problemas para entender: https://github.com/reddit/reddit/wiki/API%3A-login ¿No estoy seguro de cómo PUBLICAR esto? ¿Debería ir al encabezado, o? No estoy tan familiarizado con el protocolo HTTP. (De ahí mi proyecto - Estoy aprendiendo)
Comprobar una actualización de mi respuesta – Strelok