private BaseMandrillResponse performPostRequest( BaseMandrillRequest request, String serviceMethod, Object responseClass, TypeReference reference) throws RequestFailedException { try { request.setKey(config.getApiKey()); HttpPost postRequest = new HttpPost(config.getServiceUrl() + serviceMethod); String postData = getPostData(request); StringEntity input = new StringEntity(postData, "UTF-8"); input.setContentType("application/json"); postRequest.setEntity(input); HttpResponse response = httpClient.execute(postRequest); BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent()))); StringBuffer sb = new StringBuffer(); String output; // System.out.println("Output from Server .... \n"); while ((output = br.readLine()) != null) { sb.append(output); // System.out.println(output); } String responseString = sb.toString(); if (response.getStatusLine().getStatusCode() != 200) { throw new RequestFailedException( "Failed : HTTP error code : " + response.getStatusLine().getStatusCode() + " " + responseString); } // for whatever reason the ping response isn't well-formed if (responseString.indexOf("PONG!") > -1) { return new BaseMandrillStringResponse(responseString); } if (reference == null) { return convertResponseData(responseString, responseClass); } else { return convertAnonymousListResponseData(responseString, responseClass, reference); } } catch (MalformedURLException mURLE) { throw new RequestFailedException("Malformed url", mURLE); } catch (JsonGenerationException jge) { throw new RequestFailedException("Json Generation Exception", jge); } catch (JsonMappingException jme) { throw new RequestFailedException("Json Mapping Exception", jme); } catch (IOException ioe) { throw new RequestFailedException("IOException", ioe); } }
@BeforeClass public static void beforeClass() { Properties props = new Properties(); try { props.load(TemplatesTest.class.getClassLoader().getResourceAsStream("mandrill.properties")); } catch (IOException e) { fail("properties file not loaded"); } config.setApiKey(props.getProperty("apiKey")); config.setApiVersion("1.0"); config.setBaseURL("https://mandrillapp.com/api"); request.setConfig(config); request.setObjectMapper(mapper); templatesRequest.setRequest(request); }