Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.brainshare.saldeo.api.client.core.service;
- import java.net.URLEncoder;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Random;
- import org.apache.commons.codec.digest.DigestUtils;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.NameValuePair;
- import org.apache.http.client.entity.UrlEncodedFormEntity;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.client.utils.URIBuilder;
- import org.apache.http.impl.client.CloseableHttpClient;
- import org.apache.http.impl.client.HttpClients;
- import org.apache.http.message.BasicNameValuePair;
- import org.apache.http.util.EntityUtils;
- public class ApiClient {
- private static CloseableHttpClient client = HttpClients.createDefault();
- private final static String SIGNATURE = "req_sig";
- private final static String FILE = "command";
- private final static String ID = "req_id";
- private final static String USER = "username";
- private static final String COMPANY_PROGRAM_ID_PARAM_NAME = "company_program_id";
- private static final String serviceUrl = "http://192.168.1.108:8080/mvc";
- private static final String username = "bk";
- private static final String token = "token";
- public static void main(String[] args) {
- contractorMerge();
- documentList();
- }
- private static void documentList() {
- Map<String, String> params = new HashMap<String, String>();
- params.put(COMPANY_PROGRAM_ID_PARAM_NAME, "unique_company_program_id");
- // XML as a String
- String results = get("/api/xml/1.0/document/list", params);
- // result is String with XML
- }
- private static void contractorMerge() {
- // SEND_CONTRACTOR_FILE
- Map<String, String> params = new HashMap<String, String>();
- params.put(COMPANY_PROGRAM_ID_PARAM_NAME, "unique_company_program_id");
- String content = null; // TODO - XML request as a String
- // TODO XML as a String
- String result = post("/api/xml/1.0/contractor/merge;", content, params);
- }
- // TO SEND DATA from SaldeoSMART
- public static String post(String operationUrl, String content, Map<String, String> params) {
- HttpResponse response = null;
- try {
- HttpPost post = new HttpPost(serviceUrl + operationUrl);
- ArrayList<NameValuePair> postParameters;
- postParameters = new ArrayList<NameValuePair>();
- String id = getReqId();
- params.put(USER, username);
- params.put(ID, id);
- params.put(FILE, content);
- List<String> paramNames = new ArrayList<String>(params.keySet());
- Collections.sort(paramNames);
- StringBuilder sb = new StringBuilder();
- for (String paramName : paramNames) {
- sb.append(paramName).append("=");
- String paramVal = params.get(paramName);
- sb.append(paramVal);
- }
- String signatureBase = sb.toString();
- signatureBase = URLEncoder.encode(signatureBase, "UTF-8");
- String calculatedSignature = DigestUtils.md5Hex(signatureBase + token);
- params.put(SIGNATURE, calculatedSignature);
- paramNames = new ArrayList<String>(params.keySet());
- for (String paramName : paramNames) {
- postParameters.add(new BasicNameValuePair(paramName, params.get(paramName)));
- }
- post.setEntity(new UrlEncodedFormEntity(postParameters));
- response = client.execute(post);
- int status = response.getStatusLine().getStatusCode();
- if (status >= 200 && status < 300) {
- HttpEntity entity = response.getEntity();
- return entity != null ? EntityUtils.toString(entity) : null;
- } else {
- HttpEntity entity = response.getEntity();
- return entity != null ? EntityUtils.toString(entity) : null;
- }
- } catch (Exception e) {
- return null;
- }
- }
- // example of request id - should be something clever:)
- private static String getReqId() {
- Random rand = new Random();
- long requestId = System.currentTimeMillis() / 1000L;
- requestId += rand.nextLong();
- return String.valueOf(requestId);
- }
- // TO GET DATA from SaldeoSMART
- public static String get(String operationUrl, Map<String, String> params) {
- URIBuilder uriBuiler = null;
- try {
- uriBuiler = new URIBuilder(serviceUrl + operationUrl);
- } catch (Exception e) {
- return null;
- }
- String id = getReqId();
- params.put(USER, username);
- params.put(ID, id);
- List<String> paramNames = new ArrayList<String>(params.keySet());
- Collections.sort(paramNames);
- StringBuilder sb = new StringBuilder();
- for (String paramName : paramNames) {
- sb.append(paramName).append("=");
- String paramVal = params.get(paramName);
- sb.append(paramVal);
- }
- try {
- String signatureBase = sb.toString();
- signatureBase = URLEncoder.encode(signatureBase, "UTF-8");
- String calculatedSignature = DigestUtils.md5Hex(signatureBase + token);
- params.put(SIGNATURE, calculatedSignature);
- paramNames = new ArrayList<String>(params.keySet());
- for (String paramName : paramNames) {
- uriBuiler.setParameter(paramName, params.get(paramName));
- }
- HttpGet get = new HttpGet();
- get.setURI(uriBuiler.build());
- HttpResponse response = client.execute(get);
- int status = response.getStatusLine().getStatusCode();
- if (status >= 200 && status < 300) {
- HttpEntity entity = response.getEntity();
- return entity != null ? EntityUtils.toString(entity) : null;
- } else {
- // TODO
- return null;
- }
- } catch (Exception e) {
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement