Título: Postear en un foro SMF desde Java Publicado por: Proteus1989 en 4 Diciembre 2011, 20:25 pm Veréis quiero crear un programa en java que permita escribir en un foro SMF como este (la versión es la 2.0).
Después de mirar infinidad de páginas y estar aburrido de no conseguir nada os pregunto ¿se puede hacer lo que pido sin servlet, sin modificar el código php, etc? Lo máximo que he conseguido es conectarme a la página como invitado con URLConnection. El primer paso sería loguearme y después poder enviar mensajes y abrir nuevos hilos. A ver si podéis alumbrarme un poco el camino compañeros :D Título: Re: Postear en un foro SMF desde Java Publicado por: Leyer en 4 Diciembre 2011, 22:30 pm Con httpclient de apache es muy facil, aqui te dejo este codido para que tengas una base
http://jleyer.wordpress.com/2011/07/30/loguease-en-un-foro-smf/ Título: Re: Postear en un foro SMF desde Java Publicado por: Proteus1989 en 5 Diciembre 2011, 02:11 am Me he pasado antes por tu blog y no lo he visto :¬¬
Muchas gracias, voy a echarle un vistazo a ver que consigo sacar :) Ya comentaré como me ha ido Título: Re: Postear en un foro SMF desde Java Publicado por: Leyer en 5 Diciembre 2011, 02:11 am aajaja lo que pasa es que no habia notado que estaba en visibilidad privada :xD
Título: Re: Postear en un foro SMF desde Java Publicado por: Proteus1989 en 5 Diciembre 2011, 11:25 am Pues me ha funcionado tu código perfectamente usando la librería HttpConnect.
Por fin he podido loguearme. La cuestión es que esta librería no la entiendo muy bien y si pudieses ponerme por aquí como una vez iniciada la sesión navegar por las distintas secciones del foro, recuperar una cierta página determinada y bajarla a disco duro y poder crear un nuevo mensaje dentro un hilo y un nuevo hilo no sabes cuanto te lo agradecería. ¡Eres un fiera que lo sepas! Título: Re: Postear en un foro SMF desde Java Publicado por: Leyer en 5 Diciembre 2011, 13:35 pm Una vez logueado tienes que usar GetMethod para moverte por las secciones del foro y para hacer un post usas postMethod
Título: Re: Postear en un foro SMF desde Java Publicado por: Proteus1989 en 5 Diciembre 2011, 17:35 pm He estado probando y con el GetMethod no he tenido ningún problema
GetMethod navegar = new GetMethod(ruta); client.executeMethod(navegar); System.out.println(navegar.getResponseBodyAsString()); Pero el postMethod se me resiste. PostMethod escribir = new PostMethod(ruta); escribir.addParameter("subject", "Estoy haciendo una prueba"); escribir.addParameter("msg", "Esto no va a ir ni de flys"); client.executeMethod(escribir); ¿Donde me estoy equivocando? La ruta que he puesto es la del formulario de un nuevo post El problema es que nunca he tocado consultas... y por eso me lío con los parametros, etc. A ver si consigo crear o escribir en algún post :P Título: Re: Postear en un foro SMF desde Java Publicado por: Leyer en 5 Diciembre 2011, 18:27 pm Lee el codigo fuente y buscas el formulario asi sabras que parametros colocar
como topic,message,icon,subject, etc... no olvides los hidden Título: Re: Postear en un foro SMF desde Java Publicado por: Proteus1989 en 5 Diciembre 2011, 19:06 pm En ello estaba, si hasta he instalado el foro SMF en un servidor mio para poder ver el código fuente xD
Pero como tampoco he tocado nada de php más o menos me guio, pero tampoco me termina de cuadrar. La página donde quiero postear he visto que desde la ruta llama a action=post desde index.php y este llama a post.php Y este es el código post.php (Solo la función post() que ya es hermosa) Se supone que yo tendría que rellenar todas las variables, o la mayoria de las variables globales que aparecen ahí... pero la mayoría no se ni para que se usan xD EDIT: Código borrado, mucho espacio y poca chicha xD Título: Re: Postear en un foro SMF desde Java Publicado por: Proteus1989 en 6 Diciembre 2011, 13:07 pm Pues ya he conseguido un pasito más.
Ahora mismo estoy intentando crear un post nuevo La ruta es la página web seguido de /index.php?action=post y board es el subforo donde quiero escribir PostMethod escribir = new PostMethod(ruta); escribir.addParameter("board", "20.0"); escribir.addParameter("subject", "Estoy haciendo una prueba"); escribir.addParameter("message", "Esto no va a ir ni de flys"); client.executeMethod(escribir); Con eso consigo que me devuelva la página de crear un post con los campos asunto y mensaje rellenos y un presuavilización de la página. El asunto es, ¿alguna idea para que escriba el contenido en la base de datos? He probado añadiendo el parametro submit=true y alguna que otra cosa más, pero nada. Cualquier ayuda sería de agradecer :) |