package com.rapidftr.net; import java.io.IOException; import com.rapidftr.utilities.Settings; import com.sun.me.web.request.Arg; import com.sun.me.web.request.PostData; import com.sun.me.web.request.RequestListener; import com.sun.me.web.request.Response; public class HttpService { private final HttpServer httpServer; private final Settings settingsStrore; public HttpService(HttpServer httpServer, Settings settingsStrore) { this.httpServer = httpServer; this.settingsStrore = settingsStrore; } /* * Pass Request listener to make asynchronous request */ public void get(String url, Arg[] inputArgs, Arg[] httpArgs, RequestListener listener,Object context) { httpArgs = appendAuthenticationToken(httpArgs); httpServer.getFromServer(url, inputArgs, httpArgs, listener,context); } /* * Use this for synchronous request */ public Response get(String url, Arg[] inputArgs, Arg[] httpArgs) throws IOException { httpArgs = appendAuthenticationToken(httpArgs); return httpServer.getFromServer(url, inputArgs, httpArgs); } private Arg[] appendAuthenticationToken(Arg[] args) { Arg[] newArgs = new Arg[args.length + 1]; System.arraycopy(args, 0, newArgs, 0, args.length); newArgs[args.length] = new Arg(Arg.AUTHORIZATION, getAuthorizationToken()); return newArgs; } public void post(String url, Arg[] postArgs, Arg[] httpArgs, RequestListener listener, PostData postData, Object context) { httpArgs = appendAuthenticationToken(httpArgs); httpServer.postToServer(url, postArgs, httpArgs, listener, postData, context); } public void put(String url, Arg[] postArgs, Arg[] httpArgs, RequestListener listener, PostData postData, Object context) { int httpArgLenght = httpArgs != null ? httpArgs.length + 1 : 1; Arg[] args = new Arg[httpArgLenght]; if (httpArgs != null) { System.arraycopy(httpArgs, 0, args, 0, httpArgs.length); } args[httpArgLenght - 1] = new Arg("X-HTTP-Method-Override", "PUT"); post(url, postArgs, args, listener, postData, context); } public void cancelRequest() { httpServer.cancelRequest(); } private String getAuthorizationToken() { return "RFTR_Token " + settingsStrore.getAuthorizationToken(); } }