import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class Consts {
public static final String SYNC_DIR = "d:/mabilo/";
public static final String NEW_DOWNLOAD_DIR = SYNC_DIR+"download/";
public static final String M4R_DIR = SYNC_DIR + "m4r/";
public static final String LAST_SYNC_TIME_FILENAME = "lasttime";
public static final String MABILO_BASE = "http://www.mabilo.com/";
public static final String AMAZON_RING_BUCKET = "ringtone_ring";
public static final String AMAZON_IMAGE_BUCKET = "ringtone_image";
public static final String AMAZON_M4R_BUCKET = "ringtone_m4r";
public static final SimpleDateFormat SDF=new SimpleDateFormat("MMM dd yyyy", Locale.US);
public static String fetchHtmlPage(String url) throws IOException {
return fetchHtmlPage(url, "utf-8");
}
// get webpage content
public static String fetchHtmlPage(String link, String coding) throws IOException {
URL url = new URL(link);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestProperty("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3");
connection.setRequestProperty("Accept", "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");
connection.setRequestProperty("Accept-Language", "en-us");
connection.setRequestProperty("Accept-Charset", "utf-8, iso-8859-1, utf-16, *;q=0.7");
connection.setRequestProperty("Keep-Alive", "300");
connection.setRequestProperty("Connection", "keep-alive");
connection.setConnectTimeout(20000);
connection.connect();
//String cookie = connection.getHeaderField("Set-Cookie");
StringBuilder builder = new StringBuilder(1024);
InputStreamReader is = coding != null ? new InputStreamReader(connection.getInputStream(), coding) :
new InputStreamReader(connection.getInputStream());
BufferedReader reader = new BufferedReader(is);
String line;
while ((line = reader.readLine()) != null) {
builder.append(line + "\n");
}
try {
is.close();
}catch (Exception e) {
e.printStackTrace();
}
return builder.toString();
}
public static boolean downloadTryMulTimes(String url, String filename) {
for(int i=0; i<3; i++) {
if(download(url, filename)) return true;
try {
Thread.sleep(1000);
} catch (Exception e) { }
}
// delete fail file
File delfile = new File(filename);
if(delfile.exists()) {
delfile.delete();
}
return false;
}
// download a file
public static boolean download(String link, String filename) {
int byteread=0,bytesum=0;
InputStream inStream=null;
FileOutputStream fs=null;
try {
URL url = new URL(link);
URLConnection conn;
conn = url.openConnection();
conn.setConnectTimeout(15000);
conn.setReadTimeout(60000);
inStream = conn.getInputStream();
fs = new FileOutputStream(filename);
byte[] buffer = new byte[1024];
while ((byteread = inStream.read(buffer)) != -1) {
bytesum += byteread;
fs.write(buffer, 0, byteread);
}
fs.flush();
return true;
}catch (Exception e) {
e.printStackTrace();
return false;
}finally {
try {
if(inStream != null) inStream.close();
if(fs != null) fs.close();
}
catch (Exception e2) {
System.out.println("close error in download");
e2.printStackTrace();
}
}
}
public static int String2Int(String value) {
int result = 0;
for(int i=0; i<value.length(); i++)
if(Character.isDigit(value.charAt(i)))
result = result*10 + value.charAt(i) - '0';
return result;
}
}