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    }