Re: : how to supply login/password to a web site
On 2/17/2012 7:35 AM, zigzagdna wrote:
On Feb 16, 9:47 pm, zigzagdna<zigzag...@yahoo.com> wrote:
On Feb 16, 9:16 pm, Arne Vajh?j<a...@vajhoej.dk> wrote:
On 2/16/2012 8:53 PM, zigzagdna wrote:
I have a web site which I want to access from a java program.
Problem is web site requires a login and password. However web site
Does not provide in URL a way to specify login and password.
Is there any way in my java progam I can supply various key strokes
which I will
Type when I logon manually.
Typical the web site will use form based login.
In which case you will need to first send a POST to the
action URL of the login page and then request the stuff you
need using the session cookie you got back from the login.
I will strongly recommend Apache HttpClient over raw
(Http)URLConnection.
I do have some examples on the shelf if you are interested.
Can you post your examples in this thread, else please send them to
me at
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
public class Login {
private HttpClient client;
public Login() {
client = new DefaultHttpClient();
}
public void login(String url, String userField, String userValue,
String passField, String passValue) throws Exception {
List<NameValuePair> nvp = new ArrayList<NameValuePair>();
nvp.add(new BasicNameValuePair(userField, userValue));
nvp.add(new BasicNameValuePair(passField, passValue));
post(url, nvp);
}
public String get(String url) throws Exception {
HttpGet met = new HttpGet(url);
return EntityUtils.toString(client.execute(met).getEntity());
}
public String post(String url, List<NameValuePair> nvp) throws
Exception {
HttpPost met = new HttpPost(url);
if (nvp != null) {
met.setEntity(new UrlEncodedFormEntity(nvp, HTTP.UTF_8));
}
return EntityUtils.toString(client.execute(met).getEntity());
}
public static void main(String[] args) throws Exception {
Login lgi = new Login();
lgi.get("http://localhost:8080/login/open/test.jsp");
lgi.login("http://localhost:8080/login/j_security_check",
"j_username", "userarne", "j_password", "xxxxxx");
System.out.println(lgi.get("http://localhost:8080/login/open/test.jsp"));
}
}
Arne