Android Open Source - Async-Http-lib-with-Parsing-for-Android Request






From Project

Back to project page Async-Http-lib-with-Parsing-for-Android.

License

The source code is released under:

Apache License

If you think the Android project Async-Http-lib-with-Parsing-for-Android 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

/**
 * //from   w  ww.j  a v a2  s .  c  o  m
 */
package com.cognizant.http;

import java.io.Serializable;
import java.util.Map;

import org.apache.http.protocol.HTTP;

/**
 * This class prepares Request object for the client. Using RequestBuilder, calling functionality can 
 * create customize request object.
 * 
 * @author Ravi Bhojani
 *
 */
public class Request {

  private String requestUrl;
  private int httpMethod;
  private Serializable requestData;
  private Map<String, String> requestHeader;
  private int connectionTimeout;
  private int readTimeout;
  
  
  public int getConnectionTimeout() {
    return connectionTimeout;
  }

  public int getReadTimeout() {
    return readTimeout;
  }

  public Map<String, String> getRequestHeader() {
    return requestHeader;
  }

  public String getRequestUrl() {
    return requestUrl;
  }
  
  public int getHttpMethod() {
    return httpMethod;
  }
  
  public Serializable getRequestData() {
    return requestData;
  }
  
  private Request(RequestBuilder requestBuilder)
  {
    this.requestUrl = requestBuilder.requestUrl;
    this.httpMethod = requestBuilder.httpMethod;
    this.requestData = requestBuilder.requestData;
    this.requestHeader = requestBuilder.requestHeader;
    this.connectionTimeout = requestBuilder.connectionTimeout;
    this.readTimeout = requestBuilder.readTimeout;
  }
  
  public static class RequestBuilder
  {
    private String requestUrl;
    private int httpMethod;
    private Serializable requestData;
    private Map<String, String> requestHeader;
    private int connectionTimeout = HttpConstant.Connection.CONNECTION_TIME_OUT_SECOND;
    private int readTimeout = HttpConstant.Connection.READ_TIME_OUT_SECOND;
    
    public RequestBuilder(String requestUrl) {
      this.requestUrl = requestUrl;
    }
    
    /**
     * This method will set Http method type. Calling function can set Get {@link HttpConstant.GET_METHOD},
     * Post {@link HttpConstant.POST_METHOD}, Put {@link HttpConstant.PUT_METHOD} and Delete {@link HttpConstant.DELETE_METHOD}.
     * 
     * If calling function set out side of this value then it will throw {@link IllegalArgumentException}
     * @param httpMethod
     * @return
     */
    public RequestBuilder httpMethod(int httpMethod)
    {
      if(httpMethod == HttpConstant.GET_METHOD || httpMethod == HttpConstant.POST_METHOD
          || httpMethod == HttpConstant.PUT_METHOD || httpMethod == HttpConstant.DELETE_METHOD)
      {
        this.httpMethod = httpMethod;
      }
      else
      {
        throw new IllegalArgumentException("Use either Get, Post, Put or Delete method");
      }
      return this;
    }
    
    /**
     * Calling function can set object which needs to sent to the web server. Based on Configuration of {@link ServiceBean},
     * request object can use Xml or Json to convert object into byte stream.   
     *  
     * @param requestData
     * @return
     */
    public RequestBuilder requestData(Serializable requestData)
    {
      this.requestData = requestData;
      return this;
    }
    
    /**
     * This method will set {@link HTTP} header which needs to send server for processing. 
     * @param requestHeader
     * @return
     */
    public RequestBuilder requestHeader(Map<String, String> requestHeader)
    {
      this.requestHeader = requestHeader;
      return this;
    }
    
    /**
     * This method will set connection timeout. It's in second. By default it's value is {@link HttpConstant.Connection.CONNECTION_TIME_OUT_SECOND} 
     * @param connectionTimeout
     */
    public RequestBuilder connectionTimeout(int connectionTimeout)
    {
      this.connectionTimeout = connectionTimeout;
      return this;
    }
    
    /**
     * This method will set read timeout. It's in second. By default it's value is {@link HttpConstant.Connection.READ_TIME_OUT_SECOND}
     * @param readTimeout
     */
    public RequestBuilder readTimeout(int readTimeout)
    {
      this.readTimeout = readTimeout;
      return this;
    }
    
    public Request build()
    {
      return new Request(this);
    }
  }
}




Java Source Code List

com.cognizant.http.HttpConnection.java
com.cognizant.http.HttpConstant.java
com.cognizant.http.Request.java
com.cognizant.http.ServiceBean.java
com.cognizant.http.ServiceCallAsyncTask.java
com.cognizant.http.ServiceCall.java
com.cognizant.http.jackson.JacksonObjectMapperHolder.java
com.cognizant.http.listeners.ResponseEventListener.java
com.cognizant.http.utils.HTTPUtil.java
com.cognizant.http.utils.NetworkAccessUtil.java
com.cognizant.http.utils.NoNetworkAvailableException.java