Skip to content
 
 

Latest commit

 

History

115 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HttpLibrary

HTTP connection library which is based on OkHttp 3.4.2 library

  • This library uses OkHttp as main core, to provide unified interface for using Okhttp's capabilities
  • Support Response data as JSONObject, JSONArray, or String. (You don't need to parse response data by your self!)

Gradle build

build.gradle

buildscript {
		repositories {
			...
			jcenter()
		}
	}

dependencies {
  ...
  compile 'com.danielworld:http-connection-library:1.1.7'
  // If current project is dependent on parent project (Indeed, there is parent project)
  // You should write jcenter() in parent's repositories
}

Asynchronous GET

Excute on the main thread!

HttpRequest request = new HttpRequest();
request.setURL("url");                            // Set URL
request.setMethod(HttpRequest.Method.GET);        // Http GET method
request.setRequestType(RequestType.Type.STRING);  // String request type

request.addHeader("header_key", "header_value");  // add Header

request.addParameter("Locale", "enUS");           // add Parameter
request.addParameter("Id", 134);

// Start Async Http connection 
AsyncHttpConnection
  .getInstance()
    .start(request, new JsonHttpResponseHandler(), new okhttp3.Intercepter);

Synchronous GET

...
SyncHttpConnection
  .getInstance()
    .start(request, new JsonHttpResponseHandler(), new okhttp3.Intercepter);

POST Json request

HttpRequest request = new HttpRequest();
request.setURL("url");                            // Set URL
request.setMethod(HttpRequest.Method.POST);        // Http GET method
request.setRequestType(RequestType.Type.STRING);  // String request type

request.addHeader("header_key", "header_value");  // add Header

JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("Text", "example1");
jsonObject.addProperty("Id", 11324);

request.setContentType(ContentType.getApplicationJson());   // Content-type (required)
request.addBody(jsonObject.toString);                       // add body	(required)

AsyncHttpConnection
  .getInstance()
    .start(request, new JsonHttpResponseHandler(), new okhttp3.Intercepter);

POST Form request

HttpRequest request = new HttpRequest();
request.setURL("url");                            // Set URL
request.setMethod(HttpRequest.Method.POST);        // Http POST method
request.setRequestType(RequestType.Type.STRING);  // String request type

request.addHeader("header_key", "header_value");  // add Header

request.addParameter("text","uiok");              // Form body
request.addParameter("Id", 22242);

request.setContentType(ContentType.getApplicationXWwwFormUrlencoded());   // Content-type (required)

AsyncHttpConnection
  .getInstance()
    .start(request, new JsonHttpResponseHandler(), new okhttp3.Intercepter);

DELETE

HttpRequest request = new HttpRequest();
request.setURL("url");                            // Set URL
request.setMethod(HttpRequest.Method.DELETE);        // Http DELETE method
request.setRequestType(RequestType.Type.STRING);  // String request type

request.addHeader("header_key", "header_value");  // add header

AsyncHttpConnection
  .getInstance()
    .start(request, new JsonHttpResponseHandler(), new okhttp3.Intercepter);

DELETE Json request

HttpRequest request = new HttpRequest();
request.setURL("url");                            // Set URL
request.setMethod(HttpRequest.Method.DELETE);        // Http DELETE method
request.setRequestType(RequestType.Type.STRING);  // String request type

request.addHeader("header_key", "header_value");  // add header

JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("Text", "example1");
jsonObject.addProperty("Id", 11324);

request.setContentType(ContentType.getApplicationJson());   // Content-type 
request.addBody(jsonObject.toString);                       // add body

AsyncHttpConnection
  .getInstance()
    .start(request, new JsonHttpResponseHandler(), new okhttp3.Intercepter);

DELETE Query string

HttpRequest request = new HttpRequest();
request.setURL("url");                            // Set URL
request.setMethod(HttpRequest.Method.DELETE);        // Http DELETE method
request.setRequestType(RequestType.Type.STRING);  // String request type

request.addHeader("header_key", "header_value");  // add header

request.addParameter("abc", "sfd");
request.addParameter("23sd", 22344);

AsyncHttpConnection
  .getInstance()
    .start(request, new JsonHttpResponseHandler(), new okhttp3.Intercepter);

PUT Json request

HttpRequest request = new HttpRequest();
request.setURL("url");                            // Set URL
request.setMethod(HttpRequest.Method.PUT);        // Http PUT method
request.setRequestType(RequestType.Type.STRING);  // String request type

request.addHeader("header_key", "header_value");  // add Header

JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("Text", "example1");
jsonObject.addProperty("Id", 11324);

request.setContentType(ContentType.getApplicationJson());   // Content-type
request.addBody(jsonObject.toString);                       // add body

AsyncHttpConnection
  .getInstance()
    .start(request, new JsonHttpResponseHandler(), new okhttp3.Intercepter);

Multipart/form-data POST request

HttpRequest request = new HttpRequest();
request.setURL("url");                            // Set URL
request.setMethod(HttpRequest.Method.POST);        // Http POST method
request.setRequestType(RequestType.Type.MULTI_PART);  // Multi-part request type

request.addHeader("header_key", "header_value");  // add Header

// Add Image file (file path, file name, parameter name, image content-type)
request.addFile(new File("aa.png").getAbsolutePath(), new File("aa.png").getName(), "parameterName", ContentType.getApplicationOctetStream());

// add parameters
// add to body using multipart/form-data format (Content-Type = text/plain) in multipart/form-data task
request.addParameter("Locale", "enUS"); 
request.addParameter("Id", 134);

AsyncHttpConnection
  .getInstance()
    .start(request, new JsonHttpResponseHandler(), new okhttp3.Intercepter);

JsonHttpResponseHandler

public void onSuccess(int statusCode, Headers headers, JSONObject response) {
	    // JSONObject response (there should be contents)
}

public void onSuccess(int statusCode, Headers headers, JSONArray response) {
        // JSONArray response (there should be contents)
}

public void onSuccess(int statusCode, Headers headers, String response) {
        // String response (it could be empty)
}

public void onFailure(int statusCode, Headers headers, String response) {
        // Failure response
}

AsyncHttpResponseHandler

public void onSuccess(int statusCode, Headers headers, String response) {
        
}

public void onFailure(int statusCode, Headers headers, String response) {
       
}

Add Logger (To track Http/Https traffics)

build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    // Daniel (2016-11-04 11:14:02): Okhttp3 logging interceptor
    compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
}

example

public class ExampleApplication extends android.app.Application {
	public void onCreate() {
		/**
			Once you added logger, no need to add logger again when you call other http/https calls 
But make sure not to add other interceptor in different http/https calls */ HttpRequest request = new HttpRequest(); try { request.setURL(BapulCubeUrl.ME.toString()); request.setMethod(HttpRequest.Method.GET); request.setRequestType(RequestType.Type.STRING); } catch (MalformedURLException e) { e.printStackTrace(); } HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); logging.setLevel(HttpLoggingInterceptor.Level.BASIC); AsyncHttpConnection.getInstance() .start(request, new JsonHttpResponseHandler(), logging); } }

About

HTTP/HTTPS connection library which is based on OkHttp 3.2

Resources

Stars

2 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages