Android Open Source - android-tao-rest-data-processor Post Request






From Project

Back to project page android-tao-rest-data-processor.

License

The source code is released under:

/******************************************************************************* * Copyright (c) 2014 Alexandr Tsvetkov. * All rights reserved. This program and the accompanying materials * are mad...

If you think the Android project android-tao-rest-data-processor listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*******************************************************************************
 * Copyright (c) 2014 Alexandr Tsvetkov.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser General Public License
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/lgpl.html
 *//w  w  w. j  a  v  a  2 s  .  co m
 * Contributors:
 *     Alexandr Tsvetkov - initial API and implementation
 *
 * Project:
 *     TAO Data Processor
 *
 * License agreement:
 *
 * 1. This code is published AS IS. Author is not responsible for any damage that can be
 *    caused by any application that uses this code.
 * 2. Author does not give a garantee, that this code is error free.
 * 3. This code can be used in NON-COMMERCIAL applications AS IS without any special
 *    permission from author.
 * 4. This code can be modified without any special permission from author IF AND ONLY IF
 *    this license agreement will remain unchanged.
 ******************************************************************************/
package ua.at.tsvetkov.data_processor.requests;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.http.Header;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HttpContext;

import ua.at.tsvetkov.data_processor.Scheme;
import ua.at.tsvetkov.util.Log;

public class PostRequest extends WebRequest {

   private List<BasicNameValuePair> nameValuePairs = new ArrayList<BasicNameValuePair>();
   private Header                   header;

   private PostRequest() {

   }

   /**
    * Return new instance of PostRequest. When building a {@link ua.at.tsvetkov.data_processor.requests.PostRequest PostRequest} methods
    * must be called first, before {@link ua.at.tsvetkov.data_processor.requests.Request Request} methods
    * 
    * @return
    */
   public static PostRequest newInstance() {
      return new PostRequest();
   }

   @Override
   public InputStream getInputStream() throws IOException {
      if (!isBuild()) {
         throw new IllegalArgumentException(REQUEST_IS_NOT_BUILDED);
      }
      startTime = System.currentTimeMillis();

      HttpConnectionParams.setConnectionTimeout(httpParameters, configuration.getTimeout());
      HttpConnectionParams.setSoTimeout(httpParameters, configuration.getTimeout());

      HttpPost httpPost = new HttpPost(toString());
      httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, encoding));
      httpPost.setParams(httpParameters);
      if (header != null) {
         httpPost.addHeader(header);
      }

      printToLogUrl();
      printToLogPairs();

      return getResponce(httpPost);
   }

   /**
    * Added POST parameter
    * 
    * @param name
    * @param value
    * @return
    */
   public PostRequest addPostParam(String name, String value) {
      nameValuePairs.add(new BasicNameValuePair(name, value));
      return this;
   }

   // ********************************************************************************

   /**
    * Directly assign full URL string. All other URL methods will be ignored
    * 
    * @param url
    */
   public PostRequest setUrl(String url) {
      this.url = url;
      return this;
   }

   /**
    * Set custom HttpParams.
    * 
    * @return
    */
   public PostRequest setHttpParameters(HttpParams httpParameters) {
      this.httpParameters = httpParameters;
      return this;
   }

   /**
    * Set custom HttpContext.
    * 
    * @return
    */
   public PostRequest setHttpContext(HttpContext httpContext) {
      this.httpContext = httpContext;
      return this;
   }

   /**
    * Set encoding
    * 
    * @param encoding
    */
   public PostRequest setEncoding(String encoding) {
      this.encoding = encoding;
      return this;
   }

   /**
    * Sets the scheme "http://".
    * 
    * @return
    */
   public PostRequest setSchemeHttp() {
      this.scheme = Scheme.HTTP.toString();
      return this;
   }

   /**
    * Sets the scheme "https://".
    * 
    * @return
    */
   public PostRequest setSchemeHttps() {
      this.scheme = Scheme.HTTPS.toString();
      return this;
   }

   /**
    * Sets the scheme "file://".
    * 
    * @return
    */
   public PostRequest setSchemeFile() {
      this.scheme = Scheme.HTTPS.toString();
      return this;
   }

   /**
    * Sets your scheme.
    * 
    * @param scheme
    * @return
    */
   public PostRequest setScheme(String scheme) {
      this.scheme = scheme;
      return this;
   }

   /**
    * Set User Info.
    * 
    * @param username
    * @param password
    * @return
    */
   public PostRequest setUserInfo(String username, String password) {
      this.username = username;
      this.password = password;
      return this;
   }

   /**
    * Set host.
    * 
    * @param host
    * @return
    */
   public PostRequest setHost(String host) {
      this.host = host;
      return this;
   }

   /**
    * Set port.
    * 
    * @param port
    * @return
    */
   public PostRequest setPort(String port) {
      this.port = port;
      return this;
   }

   /**
    * Set path
    * 
    * @param path
    * @return
    */
   public PostRequest setPath(String path) {
      this.path = path;
      return this;
   }

   public PostRequest setLogTag(String tag) {
      this.tag = tag;
      return this;
   }

   public PostRequest setHeader(Header header) {
      this.header = header;
      return this;
   }

   /**
    * Add to query GET parameter.
    * 
    * @param key
    * @param value
    * @return
    */
   public PostRequest addGetParam(String key, String value) {
      if (queries == null) {
         queries = new HashMap<String, String>();
      }
      queries.put(key, value);
      return this;
   }

   /**
    * Add to query GET parameter.
    * 
    * @param key
    * @param value
    * @return
    */
   public PostRequest addGetParam(String key, int value) {
      if (queries == null) {
         queries = new HashMap<String, String>();
      }
      queries.put(key, String.valueOf(value));
      return this;
   }

   /**
    * Add to query GET parameter.
    * 
    * @param key
    * @param value
    * @return
    */
   public PostRequest addGetParam(String key, long value) {
      if (queries == null) {
         queries = new HashMap<String, String>();
      }
      queries.put(key, String.valueOf(value));
      return this;
   }

   /**
    * Add to query GET parameter.
    * 
    * @param key
    * @param value
    * @return
    */
   public PostRequest addGetParam(String key, float value) {
      if (queries == null) {
         queries = new HashMap<String, String>();
      }
      queries.put(key, String.valueOf(value));
      return this;
   }

   /**
    * Add to query GET parameter.
    * 
    * @param key
    * @param value
    * @return
    */
   public PostRequest addGetParam(String key, double value) {
      if (queries == null) {
         queries = new HashMap<String, String>();
      }
      queries.put(key, String.valueOf(value));
      return this;
   }

   /**
    * Add fragment.
    * 
    * @param fragment
    * @return
    */
   public PostRequest addFragment(String fragment) {
      this.fragment = fragment;
      return this;
   }

   /**
    * Save received data to cache file. Skip it if exist.
    * 
    * @param cacheFileName
    */
   public PostRequest saveToCacheFile(String cacheFileName) {
      this.cacheFileName = cacheFileName;
      this.isRewriteFile = false;
      return this;
   }

   /**
    * Save received data to cache file. Rewrite it if exist.
    * 
    * @param cacheFileName
    */
   public PostRequest rewriteCacheFile(String cacheFileName) {
      this.cacheFileName = cacheFileName;
      this.isRewriteFile = true;
      return this;
   }

   protected void printToLogPairs() {
      if (configuration.isLogEnabled()) {
         for (int i = 0; i < nameValuePairs.size(); i++) {
            BasicNameValuePair pair = nameValuePairs.get(i);
            Log.v("ValuePair " + pair.getName() + " = " + pair.getValue());
         }
      }
   }

}




Java Source Code List

ua.at.tsvetkov.data_processor.DataProcessorConfiguration.java
ua.at.tsvetkov.data_processor.DataProcessor.java
ua.at.tsvetkov.data_processor.Encoding.java
ua.at.tsvetkov.data_processor.ProcessingCentre.java
ua.at.tsvetkov.data_processor.Scheme.java
ua.at.tsvetkov.data_processor.interfaces.InputStreamDataInterface.java
ua.at.tsvetkov.data_processor.interfaces.StringDataInterface.java
ua.at.tsvetkov.data_processor.processors.InputStreamProcessor.java
ua.at.tsvetkov.data_processor.processors.StringProcessor.java
ua.at.tsvetkov.data_processor.processors.abstractclasses.AbstractProcessor.java
ua.at.tsvetkov.data_processor.processors.abstractclasses.StringAbstractProcessor.java
ua.at.tsvetkov.data_processor.requests.AssetsRequest.java
ua.at.tsvetkov.data_processor.requests.DeleteRequest.java
ua.at.tsvetkov.data_processor.requests.FileRequest.java
ua.at.tsvetkov.data_processor.requests.GetRequest.java
ua.at.tsvetkov.data_processor.requests.MultipartRequest.java
ua.at.tsvetkov.data_processor.requests.PostRequest.java
ua.at.tsvetkov.data_processor.requests.PutRequest.java
ua.at.tsvetkov.data_processor.requests.Request.java
ua.at.tsvetkov.data_processor.requests.WebRequest.java