外汇加密和CFD休息JSON与Java
#java #forexdata #marketdata #restjson

在当前启用Web,数据驱动的时代,数据可访问性对于更快,更好的应用程序至关重要。许多数据源使用REST服务。通过这些服务,客户可以以行业标准的方式获取数据。此外,这些服务缩短了产品开发周期,并帮助企业更快地将产品推向市场。我们将在此示例中使用Apache Software Foundation中的HTTP组件库。

调用使用HTTPCLIENT的REST数据

Apache HTTPClient库使管理HTTP请求变得易于易于管理。在Intellij软件开发环境中,我们将使用Maven项目。打开Intellij并在SRC // Java目录中创建一个新的HTTP REST-CLIEN-CLIEN-MAVEN项目作为起点。此外,我们将创建一个名为RestClient.java的全新Java文件,并添加我们的代码。

安装库

通过在我们的Maven项目中包含库来简化pom.xml中的代码。在项目路线上查找pom.xml文件是打开它的第一步。必须将以下代码插入JSON标签依赖项>和 /依赖项>库中的自动IMPORT。

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.10</version>
</dependency>

让我们编写一些代码。

我们将首先添加发送请求所需的库。

import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;

之后,我们将创建程序的骨架。

public class RESTClient{
    public static void main(String[] args) throws IOException{
    //Request code inserted here
    }
}

所需的货币和我们的API密钥将在下一步中编码为请求字符串。您需要一个API密钥来从Tradermade REST服务请求外汇,CFD和加密货币数据。下载并免费注册以获取API密钥。在我们的文档页面上,您还可以找到一个预填充的代码样本。为了简单起见,本教程利用了实时端点。但是,Tradermade提供了各种目的。请访问我们的Restful API文档页面,以获取有关我们提供的端点的更多信息。

HttpGet request = new HttpGet("https://marketdata.tradermade.com/api/v1/live?currency=EURUSD&api_key=API_KEY");

在此阶段,我们可以发送请求并接收输出。

CloseableHttpResponse response = httpClient.execute(request);

try {
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        // return it as a String
        String result = EntityUtils.toString(entity);
        System.out.println(result);
    }

} finally {
    response.close();
}

您可以运行该程序以查看指定货币对的当前实时费率,看起来像这样:

{
  "endpoint": "live", 
  "quotes": [
    {
      "ask": 1.33313, 
      "base_currency": "GBP", 
      "bid": 1.33311, 
      "mid": 1.33312, 
      "quote_currency": "USD"
    } 

  ], 
  "requested_time": "Wed, 02 Mar 2022 12:00:14 GMT", 
  "timestamp": 1646222414
}

接收到数据后,我们可以编写一些代码来解析JSON。必须将新条目添加到pom.xml文件中以导入JSON库,如下所示:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20211205</version>
</dependency>

然后,我们需要在.java文件中导入类。

import org.json.JSONArray;
import org.json.JSONObject;

现在,我们将将结果数据传递到新的JSONOBJECT中,以从IT()生成JonoBject。我们可以使用GetJsonArray函数在加载时从JSONOBJECT中检索报价对象。稍后,我们可以再次检查数据,将其格式化我们想要的方式并接收结果。

JSONObject obj = new JSONObject(result);
JSONArray quotes = obj.getJSONArray("quotes");
System.out.println(quotes.toString());

for (int i = 0; i < quotes.length(); i++) {
    JSONObject quote = quotes.getJSONObject(i);
    System.out.println(" Quote " + quote.getString("base_currency") + " " + quote.getString("quote_currency") + " " + quote.getFloat("bid") + " " + quote.getFloat("ask"));
    }

我们获得类似于以下结果的结果:

Quote EURUSD 1.11069 1.11069
Quote GBPUSD 1.33504 1.33506

对于外汇,CFD和加密货币的市场数据,Tradermade通过REST和Websocket提供了多个终点。有关更多信息,请访问https://tradermade.com/

import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;

import org.json.JSONArray;
import org.json.JSONObject;

public class RESTClient {

    public static void main(String[] args) throws IOException {

        CloseableHttpClient httpClient = HttpClients.createDefault();

        try {

            HttpGet request = new HttpGet("https://marketdata.tradermade.com/api/v1/live?currency=EURUSD,GBPUSD&api_key=YOUR_API_KEY");
            CloseableHttpResponse response = httpClient.execute(request);

            try {
                HttpEntity entity = response.getEntity();
                if (entity != null) {
                    // return it as a String
                    String result = EntityUtils.toString(entity);
                    System.out.println(result);
                    JSONObject obj = new JSONObject(result);
                    JSONArray quotes = obj.getJSONArray("quotes");
                    System.out.println(quotes.toString());

                    for (int i = 0; i < quotes.length(); i++) {
                        JSONObject quote = quotes.getJSONObject(i);
                        System.out.println(" Quote " + quote.getString("base_currency") + quote.getString("quote_currency") + " " + quote.getFloat("bid") + " " + quote.getFloat("ask"));
                    }


                }

            } finally {
                response.close();
            }
        } finally {
            httpClient.close();
        }

    }

}

也访问我们的其他教程:
Data Visualization Python
Forex Crypto and CFD REST JSON With Java