// Path: src/main/java/com/cf/PriceDataAPIClient.java
// public interface PriceDataAPIClient
// {
//     public String returnTicker();
// 
//     public String getUSDBTCChartData(Long periodInSeconds, Long startEpochInSeconds);
// 
//     public String getUSDETHChartData(Long periodInSeconds, Long startEpochInSeconds);
// 
//     public String getChartData(String currencyPair, Long periodInSeconds, Long startEpochSeconds);
// 
//     public String getChartData(String currencyPair, Long periodInSeconds, Long startEpochSeconds, Long endEpochSeconds);
// }
// 
// Path: src/main/java/com/cf/client/HTTPClient.java
// public class HTTPClient
// {
// 
//     private final HttpHost proxy;
// 
//     public HTTPClient()
//     {
//         this.proxy = null;
//     }
// 
//     public HTTPClient(HttpHost proxy)
//     {
//         this.proxy = proxy;
//     }
// 
// 
//     public String postHttp(String url, List<NameValuePair> params, List<NameValuePair> headers) throws IOException
//     {
//         HttpPost post = new HttpPost(url);
//         post.setEntity(new UrlEncodedFormEntity(params, Consts.UTF_8));
//         post.getEntity().toString();
// 
//         if (headers != null)
//         {
//             for (NameValuePair header : headers)
//             {
//                 post.addHeader(header.getName(), header.getValue());
//             }
//         }
// 
//         HttpClient httpClient = HttpClientBuilder.create().setProxy(proxy).build();
//         HttpResponse response = httpClient.execute(post);
// 
//         HttpEntity entity = response.getEntity();
//         if (entity != null)
//         {
//             return EntityUtils.toString(entity);
// 
//         }
//         return null;
//     }
// 
//     public String getHttp(String url, List<NameValuePair> headers) throws IOException
//     {
//         HttpRequestBase request = new HttpGet(url);
// 
//         if (headers != null)
//         {
//             for (NameValuePair header : headers)
//             {
//                 request.addHeader(header.getName(), header.getValue());
//             }
//         }
// 
//         HttpClient httpClient = HttpClientBuilder.create().setProxy(proxy).build();
//         HttpResponse response = httpClient.execute(request);
// 
//         HttpEntity entity = response.getEntity();
//         if (entity != null)
//         {
//             return EntityUtils.toString(entity);
// 
//         }
//         return null;
//     }
// }


import com.cf.PriceDataAPIClient;
import com.cf.client.HTTPClient;
import org.apache.http.HttpHost;
import org.apache.logging.log4j.LogManager;
import java.io.IOException;
package com.cf.client.poloniex;



/**
 *
 * @author David
 */
public class PoloniexPublicAPIClient implements PriceDataAPIClient
{

    private static final String PUBLIC_URL = "https://poloniex.com/public?";
// Path: src/main/java/com/cf/PriceDataAPIClient.java
// public interface PriceDataAPIClient
// {
//     public String returnTicker();
// 
//     public String getUSDBTCChartData(Long periodInSeconds, Long startEpochInSeconds);
// 
//     public String getUSDETHChartData(Long periodInSeconds, Long startEpochInSeconds);
// 
//     public String getChartData(String currencyPair, Long periodInSeconds, Long startEpochSeconds);
// 
//     public String getChartData(String currencyPair, Long periodInSeconds, Long startEpochSeconds, Long endEpochSeconds);
// }
// 
// Path: src/main/java/com/cf/client/HTTPClient.java
// public class HTTPClient
// {
// 
//     private final HttpHost proxy;
// 
//     public HTTPClient()
//     {
//         this.proxy = null;
//     }
// 
//     public HTTPClient(HttpHost proxy)
//     {
//         this.proxy = proxy;
//     }
// 
// 
//     public String postHttp(String url, List<NameValuePair> params, List<NameValuePair> headers) throws IOException
//     {
//         HttpPost post = new HttpPost(url);
//         post.setEntity(new UrlEncodedFormEntity(params, Consts.UTF_8));
//         post.getEntity().toString();
// 
//         if (headers != null)
//         {
//             for (NameValuePair header : headers)
//             {
//                 post.addHeader(header.getName(), header.getValue());
//             }
//         }
// 
//         HttpClient httpClient = HttpClientBuilder.create().setProxy(proxy).build();
//         HttpResponse response = httpClient.execute(post);
// 
//         HttpEntity entity = response.getEntity();
//         if (entity != null)
//         {
//             return EntityUtils.toString(entity);
// 
//         }
//         return null;
//     }
// 
//     public String getHttp(String url, List<NameValuePair> headers) throws IOException
//     {
//         HttpRequestBase request = new HttpGet(url);
// 
//         if (headers != null)
//         {
//             for (NameValuePair header : headers)
//             {
//                 request.addHeader(header.getName(), header.getValue());
//             }
//         }
// 
//         HttpClient httpClient = HttpClientBuilder.create().setProxy(proxy).build();
//         HttpResponse response = httpClient.execute(request);
// 
//         HttpEntity entity = response.getEntity();
//         if (entity != null)
//         {
//             return EntityUtils.toString(entity);
// 
//         }
//         return null;
//     }
// }


// Path: src/main/java/com/cf/client/poloniex/PoloniexPublicAPIClient.java
import com.cf.PriceDataAPIClient;
import com.cf.client.HTTPClient;
import org.apache.http.HttpHost;
import org.apache.logging.log4j.LogManager;
import java.io.IOException;

package com.cf.client.poloniex;



/**
 *
 * @author David
 */
public class PoloniexPublicAPIClient implements PriceDataAPIClient
{

    private static final String PUBLIC_URL = "https://poloniex.com/public?";
    private final HTTPClient client;