HTTP Object Door is a library for simplified management of input and output information in JSON, HTTP connections and object instantiations for android.
- Android API 15 +
Clone this repository in your project and insert into your manifest these permissions:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
To use Hodoor in an Activity, you must implement its interface:
public class MainActivity extends AppCompatActivity implements Hodoor.Response {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
And then the methods:
@Override
public void httpObjectResponse(Object o, Integer id) {
}
@Override
public void httpListResponse(List<?> l, Integer id) {
}
@Override
public void httpResponseError(Integer hodoorError, Integer networkResponseError, Integer id) {
}
This library will help you write fewer codes. You will make as many HTTP connections as necessary and will manage the objects sent and received on those connections asynchronously.
Imagine that you have the following class Person:
public class Person {
private String name;
private int age;
private Person(){} // <-- This constructor will be used by Hodoor
@Override
public String toString() {
return "name: "+name+" | age: "+age;
}
}
and after the connection you will receive the following JSON response from the server:
{"name":"Jon Snow", "age":30}
Now, see how simple it is to retrieve this value and transform it into an object:
public class MainActivity extends AppCompatActivity implements Hodoor.Response {
private Hodoor<Person> hodoor; // <-- Hodoor Object with type Person
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize
hodoor = new Hodoor<>(getApplicationContext(), "http://www.myapi.com", Person.class);
// # Context # url # Person class
hodoor.setResponse(this); // configure where the response will be sent
hodoor.send(); // do it
}
@Override
public void httpObjectResponse(Object o, Integer id) {
Person person = (Person)o; // this is your object
}