You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2012/01/25 19:17:04 UTC
svn commit: r1235857 -
/abdera/abdera2/client/src/main/java/org/apache/abdera2/protocol/client/Session.java
Author: jmsnell
Date: Wed Jan 25 18:17:03 2012
New Revision: 1235857
URL: http://svn.apache.org/viewvc?rev=1235857&view=rev
Log:
Form Login modifications based on experience building real apps.. always a good thing
Modified:
abdera/abdera2/client/src/main/java/org/apache/abdera2/protocol/client/Session.java
Modified: abdera/abdera2/client/src/main/java/org/apache/abdera2/protocol/client/Session.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/client/src/main/java/org/apache/abdera2/protocol/client/Session.java?rev=1235857&r1=1235856&r2=1235857&view=diff
==============================================================================
--- abdera/abdera2/client/src/main/java/org/apache/abdera2/protocol/client/Session.java (original)
+++ abdera/abdera2/client/src/main/java/org/apache/abdera2/protocol/client/Session.java Wed Jan 25 18:17:03 2012
@@ -20,6 +20,7 @@ package org.apache.abdera2.protocol.clie
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
@@ -48,6 +49,7 @@ import org.apache.http.protocol.HttpCont
import org.apache.http.util.EntityUtils;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
@@ -538,14 +540,37 @@ public class Session {
}
public boolean doFormLogin(String uri, String userfield, String userid, String passfield, String password) {
+ return doFormLogin(uri, userfield, userid, passfield, password, (ImmutableMap<String,String>)null);
+ }
+
+ public boolean doFormLogin(
+ String uri,
+ String userfield,
+ String userid,
+ String passfield,
+ String password,
+ ImmutableMap.Builder<String,String> additional) {
+ return doFormLogin(uri,userfield,userid,passfield,password,additional.build());
+ }
+
+ public boolean doFormLogin(
+ String uri,
+ String userfield,
+ String userid,
+ String passfield,
+ String password,
+ ImmutableMap<String,String> additional) {
try {
HttpPost httpost = new HttpPost(uri);
+ ImmutableList.Builder<BasicNameValuePair> pairs =
+ ImmutableList.<BasicNameValuePair>builder()
+ .add(new BasicNameValuePair(userfield,userid))
+ .add(new BasicNameValuePair(passfield,password));
+ for (Map.Entry<String, String> entry : additional.entrySet())
+ pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
httpost.setEntity(
new UrlEncodedFormEntity(
- ImmutableList.of(
- new BasicNameValuePair(userfield,userid),
- new BasicNameValuePair(passfield,password)
- ),
+ pairs.build(),
HTTP.UTF_8));
HttpResponse response = getClient().execute(httpost,localContext);
HttpEntity entity = response.getEntity();