This session demonstrate how to interact with MCS API Server.
If you are familiar with Volley, the open source network request library created by Google, hooray! It's almost the same to manipulate MCS SDK.
// Default method is GET
int method = McsJsonRequest.Method.GET;
String url = RequestApi.GET_DEVICE_LIST;
McsResponse.SuccessListener<JSONObject> successListener =
new McsResponse.SuccessListener<JSONObject>() {
@Override public void onSuccess(JSONObject response) {
DeviceSummaryEntity[] summary = new Gson().fromJson(
response.toString(), DeviceSummaryEntity.class).getResults();
// ...
}
};
/**
* Optional.
* Default error message shows in log.
*/
McsResponse.ErrorListener errorListener = new McsResponse.ErrorListener() {
@Override public void onError(Exception e) {
// network request failed
}
};
McsJsonRequest request = new McsJsonRequest(method, url, successListener, errorListener);
RequestManager.sendInBackground(request);We use RequestManager singleton to send McsJsonRequest to MCS API server. To create any McsJsonRequest, provide the following as parameters:
| Name | Usage | Description |
|---|---|---|
| method | Optional, int |
The method of request. Default is GET. |
| url | Required, String |
The url of request |
| headers | Optional, HashMap<String, String> |
The headers of request. Always default with key Content-Type: application/json, AppId: YOUR_APP_ID and AppSecret: YOUR_APP_SECRET. |
| body | Optional, String |
The body of request. |
| successListener | Required, McsResponse.SuccessListener |
The handler to define what to do after request succeed. |
| errorListener | Optional, McsResponse.ErrorListener |
The handler to define what to do after request failed. Default error message shows in log. |
Use McsJsonRequest.Method to specify the method of your HTTP request:
McsJsonReqeust.Method.GETMcsJsonReqeust.Method.POSTMcsJsonReqeust.Method.PUTMcsJsonReqeust.Method.DELETE
The response of McsRequest is separated into 2 parts: success and error.
Inside the code block of onSuccess() and onError(), it runs on main thread.
The handler to define what to do after request succeeded.
new McsResponse.SuccessListener<JSONObject>() {
@Override public void onSuccess(JSONObject response) {
// Request Succeeded, back to UI thread
}
}
The handler to define what to do after request failed. Default error message shows in log. Check Handling Errors for detailed exception type.
new McsResponse.ErrorListener() {
@Override public void onError(Exception e) {
// Request failed, back to UI thread
}
}
Every success response of McsJsonRequest is of type JSONObject. We have provided a set of entities to simplify the serialization and deserialization of these network requests.
With Gson, you can get the object by specifing the correct class:
DeviceSummaryEntity[] summary = new Gson().fromJson(
response.toString(), DeviceSummaryEntity.class).getResults();Check Entities - Mcs Android Guide for detailed explaination.