001 package railo.runtime.util; 002 003 import java.io.IOException; 004 import java.io.UnsupportedEncodingException; 005 import java.net.MalformedURLException; 006 import java.net.URI; 007 import java.net.URISyntaxException; 008 import java.net.URL; 009 010 import railo.commons.net.URLDecoder; 011 import railo.commons.net.URLEncoder; 012 import railo.commons.net.http.HTTPEngine; 013 import railo.commons.net.http.HTTPResponse; 014 import railo.commons.net.http.Header; 015 import railo.runtime.net.proxy.ProxyDataImpl; 016 017 public class HTTPUtilImpl implements HTTPUtil { 018 019 020 021 private static HTTPUtil instance=new HTTPUtilImpl(); 022 023 private HTTPUtilImpl(){} 024 025 public static HTTPUtil getInstance() { 026 return instance; 027 } 028 029 /** 030 * @see railo.runtime.util.HTTPUtil#decode(java.lang.String, java.lang.String) 031 */ 032 public String decode(String str, String charset)throws UnsupportedEncodingException { 033 return URLDecoder.decode(str, charset,false); 034 } 035 036 /** 037 * @see railo.runtime.util.HTTPUtil#delete(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, railo.commons.net.http.Header[]) 038 */ 039 public HTTPResponse delete(URL url, String username, String password, 040 int timeout, String charset, String useragent, String proxyserver, 041 int proxyport, String proxyuser, String proxypassword, 042 Header[] headers) throws IOException { 043 return HTTPEngine.delete(url, username, password, timeout,HTTPEngine.MAX_REDIRECT, charset, useragent, ProxyDataImpl.getInstance(proxyserver, proxyport, proxyuser, proxypassword), headers); 044 } 045 046 /** 047 * @param str 048 * @param charset 049 * @return 050 * @throws UnsupportedEncodingException 051 */ 052 public String encode(String str, String charset)throws UnsupportedEncodingException { 053 return URLEncoder.encode(str, charset); 054 } 055 056 /** 057 * @see railo.runtime.util.HTTPUtil#head(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, railo.commons.net.http.Header[]) 058 */ 059 public HTTPResponse head(URL url, String username, String password, 060 int timeout, String charset, String useragent, String proxyserver, 061 int proxyport, String proxyuser, String proxypassword, 062 Header[] headers) throws IOException { 063 return HTTPEngine.head(url, username, password, timeout,HTTPEngine.MAX_REDIRECT, charset, useragent, ProxyDataImpl.getInstance(proxyserver, proxyport, proxyuser, proxypassword), headers); 064 } 065 066 /** 067 * @see railo.runtime.util.HTTPUtil#get(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, railo.commons.net.http.Header[]) 068 */ 069 public HTTPResponse get(URL url, String username, String password, 070 int timeout, String charset, String useragent, String proxyserver, 071 int proxyport, String proxyuser, String proxypassword, 072 Header[] headers) throws IOException { 073 return HTTPEngine.get(url, username, password, timeout,HTTPEngine.MAX_REDIRECT, charset, useragent, ProxyDataImpl.getInstance(proxyserver, proxyport, proxyuser, proxypassword), headers); 074 } 075 076 /** 077 * @see railo.runtime.util.HTTPUtil#put(java.net.URL, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, railo.commons.net.http.Header[], java.lang.Object) 078 */ 079 public HTTPResponse put(URL url, String username, String password, 080 int timeout, String charset, String useragent, String proxyserver, 081 int proxyport, String proxyuser, String proxypassword, 082 Header[] headers, Object body) throws IOException { 083 return put(url, username, proxypassword, timeout, null, charset, useragent, proxyserver, proxyport, proxyuser, proxypassword, headers, body); 084 } 085 086 // FUTURE add to interface 087 public HTTPResponse put(URL url, String username, String password, 088 int timeout, String mimetype, String charset, String useragent, String proxyserver, 089 int proxyport, String proxyuser, String proxypassword, 090 Header[] headers, Object body) throws IOException { 091 return HTTPEngine.put(url, username, password, timeout,HTTPEngine.MAX_REDIRECT, mimetype, charset, useragent, ProxyDataImpl.getInstance(proxyserver, proxyport, proxyuser, proxypassword), headers, body); 092 } 093 094 /** 095 * @see railo.commons.net.HTTPUtil#toURL(java.lang.String, int) 096 */ 097 public URL toURL(String strUrl, int port) throws MalformedURLException { 098 return railo.commons.net.HTTPUtil.toURL(strUrl, port); 099 } 100 101 /** 102 * @see railo.commons.net.HTTPUtil#toURL(java.lang.String) 103 */ 104 public URL toURL(String strUrl) throws MalformedURLException { 105 return railo.commons.net.HTTPUtil.toURL(strUrl); 106 } 107 108 public URI toURI(String strUrl) throws URISyntaxException { 109 return railo.commons.net.HTTPUtil.toURI(strUrl); 110 } 111 112 public URI toURI(String strUrl, int port) throws URISyntaxException { 113 return railo.commons.net.HTTPUtil.toURI(strUrl,port); 114 } 115 116 117 }