| 68 | 1 package fschmidt.util.java; | 
|  | 2 | 
|  | 3 import java.io.InputStream; | 
|  | 4 import java.io.InputStreamReader; | 
|  | 5 import java.io.OutputStream; | 
|  | 6 import java.io.Reader; | 
|  | 7 import java.io.IOException; | 
|  | 8 import java.net.URLConnection; | 
|  | 9 import java.net.HttpURLConnection; | 
|  | 10 import java.net.URL; | 
|  | 11 import java.util.Map; | 
|  | 12 import java.util.HashMap; | 
|  | 13 | 
|  | 14 | 
|  | 15 public final class UrlCall { | 
|  | 16 	public final URLConnection connection; | 
|  | 17 | 
|  | 18 	public UrlCall(String url) throws IOException { | 
|  | 19 		this(new URL(url)); | 
|  | 20 	} | 
|  | 21 | 
|  | 22 	public UrlCall(URL url) throws IOException { | 
|  | 23 		connection = url.openConnection(); | 
|  | 24 	} | 
|  | 25 | 
|  | 26 	public void acceptJson() { | 
|  | 27 		connection.setRequestProperty("accept","application/json"); | 
|  | 28 	} | 
|  | 29 | 
|  | 30 	public String get() throws IOException { | 
|  | 31 		Reader in = new InputStreamReader(connection.getInputStream()); | 
|  | 32 		String rtn = IoUtils.readAll(in); | 
|  | 33 		in.close(); | 
|  | 34 		return rtn; | 
|  | 35 	} | 
|  | 36 | 
|  | 37 	public String post(String content,String contentType) throws IOException { | 
|  | 38 		HttpURLConnection connection = (HttpURLConnection)this.connection; | 
|  | 39 | 
|  | 40 		connection.setRequestProperty("Content-type",contentType); | 
|  | 41 		connection.setDoOutput(true); | 
|  | 42 		connection.setRequestMethod("POST"); | 
|  | 43 | 
|  | 44 		byte[] post = content.getBytes(); | 
|  | 45 		connection.setRequestProperty("Content-Length",Integer.toString(post.length)); | 
|  | 46 		OutputStream out = connection.getOutputStream(); | 
|  | 47 		out.write(post); | 
|  | 48 		out.flush(); | 
|  | 49 | 
|  | 50 		Reader in; | 
|  | 51 		try { | 
|  | 52 			in = new InputStreamReader(connection.getInputStream()); | 
|  | 53 		} catch(IOException e) { | 
|  | 54 			InputStream is = connection.getErrorStream(); | 
|  | 55 			if( is == null ) | 
|  | 56 				throw e; | 
|  | 57 			in = new InputStreamReader(is); | 
|  | 58 			String msg = IoUtils.readAll(in); | 
|  | 59 			in.close(); | 
|  | 60 			throw new UrlCallException(msg,e); | 
|  | 61 		} | 
|  | 62 		String rtn = IoUtils.readAll(in); | 
|  | 63 		in.close(); | 
|  | 64 		out.close(); | 
|  | 65 		return rtn; | 
|  | 66 	} | 
|  | 67 | 
|  | 68 	public String post(String content) throws IOException { | 
|  | 69 		return post(content,"application/x-www-form-urlencoded"); | 
|  | 70 	} | 
|  | 71 | 
|  | 72 	public String postJson(String content) throws IOException { | 
|  | 73 		return post(content,"application/json"); | 
|  | 74 	} | 
|  | 75 | 
|  | 76 } |