Within the process of mobile app development, quite often there is a necessity to get data from a remote server and later process them. To solve this task, it is required to fulfill the following steps:
- To get connected to a remote server via an API
- To receive data in one of the available formats (usually it will be JSON or XML)
- To process the received data
- To present data in a human-readable format
In this series of posts we will show how to perform each step based on the example of a multi-device application written with the help of FMX, the BlockChain.API server and ready-made Embarcadero Delphi components.
Step 1. Connection to a remote server via an API
The connection to the BlockChain.API server will be executed via the REST technology that has become a standard for data exchange between an app and a remote server thanks to the fact that:
- client apps, regardless of their type (mobile, web, etc.) can use the same API for sending requests and getting information;
- REST allows standardizing the development of services and facilitates the work with them for developers of apps on a client’s side.
![NetHTTPClient](https://www.softacom.com/wp-content/uploads/2022/03/1.png)
The client app sends a request to the server (usually it is a GET or POST request) and gets a response in a particular format. Quite often it will be JSON or XML.
JSON has a more simplified structure if we compare it with XML which can be seen in the table below.
![xml_vs_json](https://www.softacom.com/wp-content/uploads/2022/03/2.png)
Thanks to its structure, data sending and parsing for the JSON format are significantly faster than in the case of XML.
In our situation, we will send a GET request to the server.
For getting connected to the remote server and receiving data (via the GET request) we will use a standard non-visual component TNetHttpClient. It doesn’t require any settings for being used. It is necessary just to take it from the Component Palette and place it on the form.
![netHttpClientGraphic](https://www.softacom.com/wp-content/uploads/2022/03/3.png)
For checking the working capacity and the correctness of formulating API commands, we can make a testing connection and send a request to the BlockChain.Api server in a web browser.
If everything is done correctly and the connection with the server has been successfully established, we can proceed to the next step and get the necessary data.
![get the necessary data](https://www.softacom.com/wp-content/uploads/2022/03/4.jpg)
Step 2. Pull data from the server
The response received from the server will be saved in the TMemoryStream object.
![The response received from the server will be saved in the TMemoryStream object](https://www.softacom.com/wp-content/uploads/2022/03/5.jpg)
123 | NetHTTPClient1.Get('https://api.blockchain.info/charts/transactions-per-second',LResponse);
The StreamToString function is used for getting text information from the TMemoryStream stream. |
![The StreamToString function is used for getting text information from the TMemoryStream stream](https://www.softacom.com/wp-content/uploads/2022/03/6.jpg)
![the TMemoryStream stream](https://www.softacom.com/wp-content/uploads/2022/03/7.jpg)
Read about Data parsing & visualization in the next post.