Witam,
mam taką sytuację:
Jest strona, gdzie mam formularz logowania z metodą post (powiedzmy http://127.0.0.1/actions/login, oraz polami username i password. Po zalogowaniu się na stronie dostaję cookie, gdzie jest jakiś tam SID z datą ważności. I teraz, jak napisać w Javie, aby program się zalogował, a następnie poprzeglądał zawartość (np. wyszukał coś).
Problem mam głównie z logowaniem. Próbowałem używać URLConnection, Apache HTTPClient...
Np. w ten sposób:
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
public class logger {
public static void main(String[] args) throws UnsupportedEncodingException {
HttpClient client = new DefaultHttpClient();
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
HttpPost postmethod = new HttpPost("http://127.0.0.1/actions/login");
String response = "";
formparams.add(new BasicNameValuePair("username", "marcin"));
formparams.add(new BasicNameValuePair("password", "marcin300"));
UrlEncodedFormEntity ent = new UrlEncodedFormEntity(formparams, "UTF-8");
postmethod.setEntity(ent);
try {
HttpResponse resp = client.execute(postmethod);
HttpEntity entity = resp.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
int l;
while ((l = instream.read()) != -1) {
response += (char)l;
}
}
} catch (ClientProtocolException e) {
System.out.println(e.toString());
} catch (IOException e) {
System.out.println(e.toString());
}
}
}
Niestety odpowiedzi .. nie ma.
Hmm?
Z góry dzięki za podpowiedź.
// OK, znalazłem odpowiedź sam.
http://hc.apache.org/httpcomponents-client-ga/examples.html
Form Logon Example
Pozdrawiam.