You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by lr...@apache.org on 2008/11/01 00:01:58 UTC
svn commit: r709591 -
/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
Author: lryan
Date: Fri Oct 31 16:01:58 2008
New Revision: 709591
URL: http://svn.apache.org/viewvc?rev=709591&view=rev
Log:
Add ability to execute OAuth fetches from command line to OAuthFetcher.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java?rev=709591&r1=709590&r2=709591&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java Fri Oct 31 16:01:58 2008
@@ -23,6 +23,8 @@
import org.apache.shindig.gadgets.ChainedContentFetcher;
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.RequestSigningException;
+import org.apache.shindig.gadgets.http.BasicHttpFetcher;
+import org.apache.shindig.gadgets.http.HttpCache;
import org.apache.shindig.gadgets.http.HttpCacheKey;
import org.apache.shindig.gadgets.http.HttpFetcher;
import org.apache.shindig.gadgets.http.HttpRequest;
@@ -32,13 +34,19 @@
import org.apache.shindig.gadgets.oauth.AccessorInfo.OAuthParamLocation;
import org.apache.shindig.gadgets.oauth.OAuthStore.TokenInfo;
+import com.google.common.collect.Maps;
+
+import org.apache.commons.io.IOUtils;
+
import net.oauth.OAuth;
+import net.oauth.OAuth.Parameter;
import net.oauth.OAuthAccessor;
+import net.oauth.OAuthConsumer;
import net.oauth.OAuthException;
import net.oauth.OAuthMessage;
import net.oauth.OAuthProblemException;
-import net.oauth.OAuth.Parameter;
+import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -375,7 +383,7 @@
}
}
- private String getAuthorizationHeader(
+ private static String getAuthorizationHeader(
List<Map.Entry<String, String>> oauthParams) {
StringBuilder result = new StringBuilder("OAuth ");
@@ -703,7 +711,7 @@
*
* @return a list that contains only the oauth_related parameters.
*/
- private List<Map.Entry<String, String>>
+ private static List<Map.Entry<String, String>>
selectOAuthParams(OAuthMessage message) {
List<Map.Entry<String, String>> result =
new ArrayList<Map.Entry<String, String>>();
@@ -715,7 +723,7 @@
return result;
}
- private boolean isContainerInjectedParameter(String key) {
+ private static boolean isContainerInjectedParameter(String key) {
key = key.toLowerCase();
return key.startsWith("oauth") || key.startsWith("xoauth") || key.startsWith("opensocial");
}
@@ -725,4 +733,127 @@
private void logServiceProviderError(HttpRequest request, HttpResponse response) {
logger.log(Level.INFO, "OAuth request failed:\n" + request + "\nresponse:\n" + response);
}
+
+ /**
+ * Run a simple OAuth fetcher to execute a variety of OAuth fetches and output
+ * the result
+ *
+ * Arguments
+ * --consumerKey <oauth_consumer_key>
+ * --consumerSecret <oauth_consumer_secret>
+ * --requestorId <xoauth_requestor_id>
+ * --accessToken <oauth_access_token>
+ * --method <GET | POST>
+ * --url <url>
+ * --contentType <contentType>
+ * --postBody <encoded post body>
+ * --postFile <file path of post body contents>
+ * --paramLocation <URI_QUERY | POST_BODY | AUTH_HEADER>
+ *
+ */
+ public static void main(String[] argv) throws Exception {
+ Map<String, String> params = Maps.newHashMap();
+ for (int i = 0; i < argv.length; i+=2) {
+ params.put(argv[i], argv[i+1]);
+ }
+ final String consumerKey = params.get("--consumerKey");
+ final String consumerSecret = params.get("--consumerSecret");
+ final String xOauthRequestor = params.get("--requestorId");
+ final String accessToken = params.get("--accessToken");
+ final String method = params.get("--method") == null ? "GET" :params.get("--method");
+ String url = params.get("--url");
+ String contentType = params.get("--contentType");
+ String postBody = params.get("--postBody");
+ String postFile = params.get("--postFile");
+ String paramLocation = params.get("--paramLocation");
+
+ HttpRequest request = new HttpRequest(Uri.parse(url));
+ if (contentType != null) {
+ request.setHeader("Content-Type", contentType);
+ } else {
+ request.setHeader("Content-Type", OAuth.FORM_ENCODED);
+ }
+ if (postBody != null) {
+ request.setPostBody(postBody.getBytes());
+ }
+ if (postFile != null) {
+ request.setPostBody(IOUtils.toByteArray(new FileInputStream(postFile)));
+ }
+
+ OAuthParamLocation paramLocationEnum = OAuthParamLocation.URI_QUERY;
+ if (paramLocation != null) {
+ paramLocationEnum = OAuthParamLocation.valueOf(paramLocation);
+ }
+
+
+ List<OAuth.Parameter> oauthParams = new ArrayList<OAuth.Parameter>();
+ UriBuilder target = new UriBuilder(Uri.parse(url));
+ String query = target.getQuery();
+ target.setQuery(null);
+ oauthParams.addAll(OAuth.decodeForm(query));
+ if (OAuth.isFormEncoded(contentType) && request.getPostBodyAsString() != null) {
+ oauthParams.addAll(OAuth.decodeForm(request.getPostBodyAsString()));
+ }
+ if (consumerKey != null) {
+ oauthParams.add(new OAuth.Parameter(OAuth.OAUTH_CONSUMER_KEY, consumerKey));
+ }
+ if (xOauthRequestor != null) {
+ oauthParams.add(new OAuth.Parameter("xoauth_requestor_id", xOauthRequestor));
+ }
+
+ OAuthConsumer consumer = new OAuthConsumer(null, consumerKey, consumerSecret, null);
+ OAuthAccessor accessor = new OAuthAccessor(consumer);
+ accessor.accessToken = accessToken;
+ OAuthMessage message = accessor.newRequestMessage(method, target.toString(), oauthParams);
+
+ List<Map.Entry<String, String>> entryList = selectOAuthParams(message);
+
+ switch (paramLocationEnum) {
+ case AUTH_HEADER:
+ request.addHeader("Authorization", getAuthorizationHeader(entryList));
+ break;
+
+ case POST_BODY:
+ if (!OAuth.isFormEncoded(contentType)) {
+ throw new UserVisibleOAuthException(
+ "OAuth param location can only be post_body if post body if of " +
+ "type x-www-form-urlencoded");
+ }
+ String oauthData = OAuthUtil.formEncode(oauthParams);
+ if (request.getPostBodyLength() == 0) {
+ request.setPostBody(CharsetUtil.getUtf8Bytes(oauthData));
+ } else {
+ request.setPostBody((request.getPostBodyAsString() + '&' + oauthData).getBytes());
+ }
+ break;
+
+ case URI_QUERY:
+ request.setUri(Uri.parse(OAuthUtil.addParameters(request.getUri().toString(),
+ entryList)));
+ break;
+ }
+ request.setMethod(method);
+
+ HttpCache nullCache = new HttpCache() {
+ public HttpResponse getResponse(HttpCacheKey key, HttpRequest request) {
+ return null;
+ }
+
+ public HttpResponse addResponse(HttpCacheKey key, HttpRequest request,
+ HttpResponse response) {
+ return response;
+ }
+
+ public HttpResponse removeResponse(HttpCacheKey key) {
+ return null;
+ }
+ };
+ HttpFetcher fetcher = new BasicHttpFetcher(nullCache);
+ HttpResponse response = fetcher.fetch(request);
+
+ System.out.println("Request ------------------------------");
+ System.out.println(request.toString());
+ System.out.println("Response -----------------------------");
+ System.out.println(response.toString());
+ }
}
Re: svn commit: r709591 - /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
Posted by Louis Ryan <lr...@google.com>.
This is a command line tool rather than a piece of the running system, its a
quick way for people to run the same OAuth fetch from the command line that
Shindig would run etc. hence the lack of logging.
On Thu, Dec 11, 2008 at 4:19 AM, Vincent Siveton
<vi...@gmail.com>wrote:
> Hi,
>
> 2008/10/31 <lr...@apache.org>:
> > Author: lryan
> > Date: Fri Oct 31 16:01:58 2008
> > New Revision: 709591
> >
> > URL: http://svn.apache.org/viewvc?rev=709591&view=rev
> > Log:
> > Add ability to execute OAuth fetches from command line to OAuthFetcher.
> >
> > Modified:
> >
> incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
> >
> > Modified:
> incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
> > URL:
> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java?rev=709591&r1=709590&r2=709591&view=diff
> >
> ==============================================================================
> > ---
> incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
> (original)
> > +++
> incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
> Fri Oct 31 16:01:58 2008
> > @@ -23,6 +23,8 @@
> > import org.apache.shindig.gadgets.ChainedContentFetcher;
> > import org.apache.shindig.gadgets.GadgetException;
> > import org.apache.shindig.gadgets.RequestSigningException;
> > +import org.apache.shindig.gadgets.http.BasicHttpFetcher;
> > +import org.apache.shindig.gadgets.http.HttpCache;
> > import org.apache.shindig.gadgets.http.HttpCacheKey;
> > import org.apache.shindig.gadgets.http.HttpFetcher;
> > import org.apache.shindig.gadgets.http.HttpRequest;
> > @@ -32,13 +34,19 @@
> > import org.apache.shindig.gadgets.oauth.AccessorInfo.OAuthParamLocation;
> > import org.apache.shindig.gadgets.oauth.OAuthStore.TokenInfo;
> >
> > +import com.google.common.collect.Maps;
> > +
> > +import org.apache.commons.io.IOUtils;
> > +
> > import net.oauth.OAuth;
> > +import net.oauth.OAuth.Parameter;
> > import net.oauth.OAuthAccessor;
> > +import net.oauth.OAuthConsumer;
> > import net.oauth.OAuthException;
> > import net.oauth.OAuthMessage;
> > import net.oauth.OAuthProblemException;
> > -import net.oauth.OAuth.Parameter;
> >
> > +import java.io.FileInputStream;
> > import java.util.ArrayList;
> > import java.util.List;
> > import java.util.Map;
> > @@ -375,7 +383,7 @@
> > }
> > }
> >
> > - private String getAuthorizationHeader(
> > + private static String getAuthorizationHeader(
> > List<Map.Entry<String, String>> oauthParams) {
> > StringBuilder result = new StringBuilder("OAuth ");
> >
> > @@ -703,7 +711,7 @@
> > *
> > * @return a list that contains only the oauth_related parameters.
> > */
> > - private List<Map.Entry<String, String>>
> > + private static List<Map.Entry<String, String>>
> > selectOAuthParams(OAuthMessage message) {
> > List<Map.Entry<String, String>> result =
> > new ArrayList<Map.Entry<String, String>>();
> > @@ -715,7 +723,7 @@
> > return result;
> > }
> >
> > - private boolean isContainerInjectedParameter(String key) {
> > + private static boolean isContainerInjectedParameter(String key) {
> > key = key.toLowerCase();
> > return key.startsWith("oauth") || key.startsWith("xoauth") ||
> key.startsWith("opensocial");
> > }
> > @@ -725,4 +733,127 @@
> > private void logServiceProviderError(HttpRequest request, HttpResponse
> response) {
> > logger.log(Level.INFO, "OAuth request failed:\n" + request +
> "\nresponse:\n" + response);
> > }
> > +
> > + /**
> > + * Run a simple OAuth fetcher to execute a variety of OAuth fetches
> and output
> > + * the result
> > + *
> > + * Arguments
> > + * --consumerKey <oauth_consumer_key>
> > + * --consumerSecret <oauth_consumer_secret>
> > + * --requestorId <xoauth_requestor_id>
> > + * --accessToken <oauth_access_token>
> > + * --method <GET | POST>
> > + * --url <url>
> > + * --contentType <contentType>
> > + * --postBody <encoded post body>
> > + * --postFile <file path of post body contents>
> > + * --paramLocation <URI_QUERY | POST_BODY | AUTH_HEADER>
> > + *
> > + */
> > + public static void main(String[] argv) throws Exception {
> > + Map<String, String> params = Maps.newHashMap();
> > + for (int i = 0; i < argv.length; i+=2) {
> > + params.put(argv[i], argv[i+1]);
> > + }
> > + final String consumerKey = params.get("--consumerKey");
> > + final String consumerSecret = params.get("--consumerSecret");
> > + final String xOauthRequestor = params.get("--requestorId");
> > + final String accessToken = params.get("--accessToken");
> > + final String method = params.get("--method") == null ? "GET"
> :params.get("--method");
> > + String url = params.get("--url");
> > + String contentType = params.get("--contentType");
> > + String postBody = params.get("--postBody");
> > + String postFile = params.get("--postFile");
> > + String paramLocation = params.get("--paramLocation");
> > +
> > + HttpRequest request = new HttpRequest(Uri.parse(url));
> > + if (contentType != null) {
> > + request.setHeader("Content-Type", contentType);
> > + } else {
> > + request.setHeader("Content-Type", OAuth.FORM_ENCODED);
> > + }
> > + if (postBody != null) {
> > + request.setPostBody(postBody.getBytes());
> > + }
> > + if (postFile != null) {
> > + request.setPostBody(IOUtils.toByteArray(new
> FileInputStream(postFile)));
> > + }
> > +
> > + OAuthParamLocation paramLocationEnum = OAuthParamLocation.URI_QUERY;
> > + if (paramLocation != null) {
> > + paramLocationEnum = OAuthParamLocation.valueOf(paramLocation);
> > + }
> > +
> > +
> > + List<OAuth.Parameter> oauthParams = new
> ArrayList<OAuth.Parameter>();
> > + UriBuilder target = new UriBuilder(Uri.parse(url));
> > + String query = target.getQuery();
> > + target.setQuery(null);
> > + oauthParams.addAll(OAuth.decodeForm(query));
> > + if (OAuth.isFormEncoded(contentType) &&
> request.getPostBodyAsString() != null) {
> > +
> oauthParams.addAll(OAuth.decodeForm(request.getPostBodyAsString()));
> > + }
> > + if (consumerKey != null) {
> > + oauthParams.add(new OAuth.Parameter(OAuth.OAUTH_CONSUMER_KEY,
> consumerKey));
> > + }
> > + if (xOauthRequestor != null) {
> > + oauthParams.add(new OAuth.Parameter("xoauth_requestor_id",
> xOauthRequestor));
> > + }
> > +
> > + OAuthConsumer consumer = new OAuthConsumer(null, consumerKey,
> consumerSecret, null);
> > + OAuthAccessor accessor = new OAuthAccessor(consumer);
> > + accessor.accessToken = accessToken;
> > + OAuthMessage message = accessor.newRequestMessage(method,
> target.toString(), oauthParams);
> > +
> > + List<Map.Entry<String, String>> entryList =
> selectOAuthParams(message);
> > +
> > + switch (paramLocationEnum) {
> > + case AUTH_HEADER:
> > + request.addHeader("Authorization",
> getAuthorizationHeader(entryList));
> > + break;
> > +
> > + case POST_BODY:
> > + if (!OAuth.isFormEncoded(contentType)) {
> > + throw new UserVisibleOAuthException(
> > + "OAuth param location can only be post_body if post body
> if of " +
> > + "type x-www-form-urlencoded");
> > + }
> > + String oauthData = OAuthUtil.formEncode(oauthParams);
> > + if (request.getPostBodyLength() == 0) {
> > + request.setPostBody(CharsetUtil.getUtf8Bytes(oauthData));
> > + } else {
> > + request.setPostBody((request.getPostBodyAsString() + '&' +
> oauthData).getBytes());
> > + }
> > + break;
> > +
> > + case URI_QUERY:
> > +
> request.setUri(Uri.parse(OAuthUtil.addParameters(request.getUri().toString(),
> > + entryList)));
> > + break;
> > + }
> > + request.setMethod(method);
> > +
> > + HttpCache nullCache = new HttpCache() {
> > + public HttpResponse getResponse(HttpCacheKey key, HttpRequest
> request) {
> > + return null;
> > + }
> > +
> > + public HttpResponse addResponse(HttpCacheKey key, HttpRequest
> request,
> > + HttpResponse response) {
> > + return response;
> > + }
> > +
> > + public HttpResponse removeResponse(HttpCacheKey key) {
> > + return null;
> > + }
> > + };
> > + HttpFetcher fetcher = new BasicHttpFetcher(nullCache);
> > + HttpResponse response = fetcher.fetch(request);
> > +
> > + System.out.println("Request ------------------------------");
> > + System.out.println(request.toString());
> > + System.out.println("Response -----------------------------");
> > + System.out.println(response.toString());
> > + }
> > }
>
> Similar remark about System.out in r725581, why not using a logging api?
>
> Cheers,
>
> Vincent
>
Re: svn commit: r709591 - /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
Posted by Vincent Siveton <vi...@gmail.com>.
Hi,
2008/10/31 <lr...@apache.org>:
> Author: lryan
> Date: Fri Oct 31 16:01:58 2008
> New Revision: 709591
>
> URL: http://svn.apache.org/viewvc?rev=709591&view=rev
> Log:
> Add ability to execute OAuth fetches from command line to OAuthFetcher.
>
> Modified:
> incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
>
> Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
> URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java?rev=709591&r1=709590&r2=709591&view=diff
> ==============================================================================
> --- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java (original)
> +++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java Fri Oct 31 16:01:58 2008
> @@ -23,6 +23,8 @@
> import org.apache.shindig.gadgets.ChainedContentFetcher;
> import org.apache.shindig.gadgets.GadgetException;
> import org.apache.shindig.gadgets.RequestSigningException;
> +import org.apache.shindig.gadgets.http.BasicHttpFetcher;
> +import org.apache.shindig.gadgets.http.HttpCache;
> import org.apache.shindig.gadgets.http.HttpCacheKey;
> import org.apache.shindig.gadgets.http.HttpFetcher;
> import org.apache.shindig.gadgets.http.HttpRequest;
> @@ -32,13 +34,19 @@
> import org.apache.shindig.gadgets.oauth.AccessorInfo.OAuthParamLocation;
> import org.apache.shindig.gadgets.oauth.OAuthStore.TokenInfo;
>
> +import com.google.common.collect.Maps;
> +
> +import org.apache.commons.io.IOUtils;
> +
> import net.oauth.OAuth;
> +import net.oauth.OAuth.Parameter;
> import net.oauth.OAuthAccessor;
> +import net.oauth.OAuthConsumer;
> import net.oauth.OAuthException;
> import net.oauth.OAuthMessage;
> import net.oauth.OAuthProblemException;
> -import net.oauth.OAuth.Parameter;
>
> +import java.io.FileInputStream;
> import java.util.ArrayList;
> import java.util.List;
> import java.util.Map;
> @@ -375,7 +383,7 @@
> }
> }
>
> - private String getAuthorizationHeader(
> + private static String getAuthorizationHeader(
> List<Map.Entry<String, String>> oauthParams) {
> StringBuilder result = new StringBuilder("OAuth ");
>
> @@ -703,7 +711,7 @@
> *
> * @return a list that contains only the oauth_related parameters.
> */
> - private List<Map.Entry<String, String>>
> + private static List<Map.Entry<String, String>>
> selectOAuthParams(OAuthMessage message) {
> List<Map.Entry<String, String>> result =
> new ArrayList<Map.Entry<String, String>>();
> @@ -715,7 +723,7 @@
> return result;
> }
>
> - private boolean isContainerInjectedParameter(String key) {
> + private static boolean isContainerInjectedParameter(String key) {
> key = key.toLowerCase();
> return key.startsWith("oauth") || key.startsWith("xoauth") || key.startsWith("opensocial");
> }
> @@ -725,4 +733,127 @@
> private void logServiceProviderError(HttpRequest request, HttpResponse response) {
> logger.log(Level.INFO, "OAuth request failed:\n" + request + "\nresponse:\n" + response);
> }
> +
> + /**
> + * Run a simple OAuth fetcher to execute a variety of OAuth fetches and output
> + * the result
> + *
> + * Arguments
> + * --consumerKey <oauth_consumer_key>
> + * --consumerSecret <oauth_consumer_secret>
> + * --requestorId <xoauth_requestor_id>
> + * --accessToken <oauth_access_token>
> + * --method <GET | POST>
> + * --url <url>
> + * --contentType <contentType>
> + * --postBody <encoded post body>
> + * --postFile <file path of post body contents>
> + * --paramLocation <URI_QUERY | POST_BODY | AUTH_HEADER>
> + *
> + */
> + public static void main(String[] argv) throws Exception {
> + Map<String, String> params = Maps.newHashMap();
> + for (int i = 0; i < argv.length; i+=2) {
> + params.put(argv[i], argv[i+1]);
> + }
> + final String consumerKey = params.get("--consumerKey");
> + final String consumerSecret = params.get("--consumerSecret");
> + final String xOauthRequestor = params.get("--requestorId");
> + final String accessToken = params.get("--accessToken");
> + final String method = params.get("--method") == null ? "GET" :params.get("--method");
> + String url = params.get("--url");
> + String contentType = params.get("--contentType");
> + String postBody = params.get("--postBody");
> + String postFile = params.get("--postFile");
> + String paramLocation = params.get("--paramLocation");
> +
> + HttpRequest request = new HttpRequest(Uri.parse(url));
> + if (contentType != null) {
> + request.setHeader("Content-Type", contentType);
> + } else {
> + request.setHeader("Content-Type", OAuth.FORM_ENCODED);
> + }
> + if (postBody != null) {
> + request.setPostBody(postBody.getBytes());
> + }
> + if (postFile != null) {
> + request.setPostBody(IOUtils.toByteArray(new FileInputStream(postFile)));
> + }
> +
> + OAuthParamLocation paramLocationEnum = OAuthParamLocation.URI_QUERY;
> + if (paramLocation != null) {
> + paramLocationEnum = OAuthParamLocation.valueOf(paramLocation);
> + }
> +
> +
> + List<OAuth.Parameter> oauthParams = new ArrayList<OAuth.Parameter>();
> + UriBuilder target = new UriBuilder(Uri.parse(url));
> + String query = target.getQuery();
> + target.setQuery(null);
> + oauthParams.addAll(OAuth.decodeForm(query));
> + if (OAuth.isFormEncoded(contentType) && request.getPostBodyAsString() != null) {
> + oauthParams.addAll(OAuth.decodeForm(request.getPostBodyAsString()));
> + }
> + if (consumerKey != null) {
> + oauthParams.add(new OAuth.Parameter(OAuth.OAUTH_CONSUMER_KEY, consumerKey));
> + }
> + if (xOauthRequestor != null) {
> + oauthParams.add(new OAuth.Parameter("xoauth_requestor_id", xOauthRequestor));
> + }
> +
> + OAuthConsumer consumer = new OAuthConsumer(null, consumerKey, consumerSecret, null);
> + OAuthAccessor accessor = new OAuthAccessor(consumer);
> + accessor.accessToken = accessToken;
> + OAuthMessage message = accessor.newRequestMessage(method, target.toString(), oauthParams);
> +
> + List<Map.Entry<String, String>> entryList = selectOAuthParams(message);
> +
> + switch (paramLocationEnum) {
> + case AUTH_HEADER:
> + request.addHeader("Authorization", getAuthorizationHeader(entryList));
> + break;
> +
> + case POST_BODY:
> + if (!OAuth.isFormEncoded(contentType)) {
> + throw new UserVisibleOAuthException(
> + "OAuth param location can only be post_body if post body if of " +
> + "type x-www-form-urlencoded");
> + }
> + String oauthData = OAuthUtil.formEncode(oauthParams);
> + if (request.getPostBodyLength() == 0) {
> + request.setPostBody(CharsetUtil.getUtf8Bytes(oauthData));
> + } else {
> + request.setPostBody((request.getPostBodyAsString() + '&' + oauthData).getBytes());
> + }
> + break;
> +
> + case URI_QUERY:
> + request.setUri(Uri.parse(OAuthUtil.addParameters(request.getUri().toString(),
> + entryList)));
> + break;
> + }
> + request.setMethod(method);
> +
> + HttpCache nullCache = new HttpCache() {
> + public HttpResponse getResponse(HttpCacheKey key, HttpRequest request) {
> + return null;
> + }
> +
> + public HttpResponse addResponse(HttpCacheKey key, HttpRequest request,
> + HttpResponse response) {
> + return response;
> + }
> +
> + public HttpResponse removeResponse(HttpCacheKey key) {
> + return null;
> + }
> + };
> + HttpFetcher fetcher = new BasicHttpFetcher(nullCache);
> + HttpResponse response = fetcher.fetch(request);
> +
> + System.out.println("Request ------------------------------");
> + System.out.println(request.toString());
> + System.out.println("Response -----------------------------");
> + System.out.println(response.toString());
> + }
> }
Similar remark about System.out in r725581, why not using a logging api?
Cheers,
Vincent