1 50 51 package org.openlaszlo.iv.flash.url; 52 53 import java.io.*; 54 import java.net.*; 55 import java.util.*; 56 import org.openlaszlo.iv.flash.util.*; 57 import org.openlaszlo.iv.flash.api.*; 58 59 60 65 public class URLUrl extends IVUrl { 66 67 private URL url; 68 private URLConnection conn; 69 private long lastModified = 0; 70 private long lastConnect = 0; 71 72 78 public URLUrl( URL url ) throws IVException { 79 this.url = url; 80 } 81 82 public String getParameter( String name ) { 83 if( parms == null ) { 84 try { 85 parse( getName() ); 86 } catch( IVException e ) { 87 Log.logRB(e); 88 } 89 if( parms == null ) { 90 parms = new Hashtable(); 91 } 92 } 93 return super.getParameter(name); 94 } 95 96 public String getName() { 97 return url.toExternalForm(); 98 } 99 100 public String getRef() { 101 return url.getRef(); 102 } 103 104 public long lastModified() { 105 return lastModified; 106 } 107 108 public InputStream getInputStream() throws IOException { 109 connect(); 110 Log.logRB( Resource.RETRIEVINGCONTENT, new Object [] {getName()} ); 111 return conn.getInputStream(); 112 } 113 114 public void refresh() { 115 try { 116 connect(); 117 } catch( IOException e ) { 118 Log.logRB( e ); 119 } 120 } 121 122 private synchronized void connect() throws IOException { 123 long now = System.currentTimeMillis(); 124 if( lastConnect == 0 || lastConnect+500 < now ) { 125 Log.logRB( Resource.CONNECTINGTO, new Object [] {getName()} ); 126 String auth = setProxy(); 127 conn = url.openConnection(); 128 if ( auth!=null ) 129 conn.setRequestProperty( "Proxy-Authorization", auth ); 130 conn.connect(); 131 lastModified = conn.getLastModified(); 132 lastConnect = System.currentTimeMillis(); 133 } 134 } 135 136 private String setProxy() { 137 String auth = null; 138 String useProxy = PropertyManager.getProperty( "org.openlaszlo.iv.flash.http.proxy.enable" ); 139 if ( "true".equalsIgnoreCase( useProxy ) ) 140 { 141 String proxy = PropertyManager.getProperty( "org.openlaszlo.iv.flash.http.proxy.host" ); 142 String proxyport = PropertyManager.getProperty( "org.openlaszlo.iv.flash.http.proxy.port" ); 143 String myUserName = PropertyManager.getProperty( "org.openlaszlo.iv.flash.http.proxy.username" ); 144 String myPassword = PropertyManager.getProperty( "org.openlaszlo.iv.flash.http.proxy.password" ); 145 if( proxy != null) 146 { 147 Properties props = System.getProperties(); 148 props.put( "proxySet", "true" ); 149 props.put( "proxyHost", proxy ); 150 if ( proxyport != null ) 151 props.put( "proxyPort", proxyport ); 152 else 153 props.put( "proxyPort", "80" ); 154 if ( myUserName!=null && myUserName.trim().length()>0 ) 155 { 156 String authString = myUserName + ":" + 157 ( ( myPassword!=null && myPassword.trim().length()>0 ) ? myPassword : "" ); 158 auth = "Basic " + new sun.misc.BASE64Encoder().encode(authString.getBytes()); 159 } 160 } 161 } 162 return auth; 163 } 164 } 165 | Popular Tags |