package com.thoughtworks.calabash.android; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import static com.thoughtworks.calabash.android.CalabashLogger.error; import static java.lang.Integer.parseInt; import static java.lang.String.format; public class CalabashHttpClient { private static final String TEST_SERVER_DUMP_URL = "http://localhost:%s/dump"; private URL url; public CalabashHttpClient(CalabashWrapper calabashWrapper) { try { final int serverPort = parseInt(calabashWrapper.getTestServerPort()); url = new URL(format(TEST_SERVER_DUMP_URL, serverPort)); } catch (MalformedURLException e) { throw new RuntimeException(e); } catch (CalabashException e) { throw new RuntimeException(e); } } public String getViewDump() { String dump = "{}"; try { final HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); final InputStream stream = connection.getInputStream(); dump = Utils.toString(stream); } catch (IOException e) { CalabashLogger.error("Could not fetch view dump", e); } catch (CalabashException e) { error("Could not fetch view dump", e); } return dump; } }