diff options
Diffstat (limited to 'src/uk/org/ury/frontend/client/Client.java')
-rw-r--r-- | src/uk/org/ury/frontend/client/Client.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/uk/org/ury/frontend/client/Client.java b/src/uk/org/ury/frontend/client/Client.java new file mode 100644 index 0000000..9606d89 --- /dev/null +++ b/src/uk/org/ury/frontend/client/Client.java @@ -0,0 +1,60 @@ +package uk.org.ury.frontend.client; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; + +import java.util.Map; + +import uk.org.ury.common.protocol.ProtocolUtils; +import uk.org.ury.common.protocol.exceptions.DecodeFailureException; + +public class Client { + /** + * Get a raw response from the server. + * + * @param file + * The "file", including path and query string, to fetch from the + * server. + * + * @return The response from the server, as a key-value map. + * + * @throws DecodeFailureException + * if the decode failed. + */ + public Map<?, ?> get(String file) throws DecodeFailureException { + URL url = null; + URLConnection uc = null; + String result = ""; + + try { + url = new URL("http://localhost:8000" + file); + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + try { + uc = url.openConnection(); + + BufferedReader in = new BufferedReader(new InputStreamReader( + uc.getInputStream())); + + String inputLine; + + for (inputLine = in.readLine(); inputLine != null; inputLine = in + .readLine()) { + result += inputLine; + } + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return ProtocolUtils.decode(result); + } +} |