URL工具类

来源:互联网 发布:手机淘宝怎样用优惠券 编辑:程序博客网 时间:2024/06/14 08:41

package ssh.util;  
 
import java.awt.image.BufferedImage;  
import java.io.BufferedReader;  
import java.io.File;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.InputStreamReader;  
import java.io.UnsupportedEncodingException;  
import java.net.HttpURLConnection;  
import java.net.MalformedURLException;  
import java.net.URL;  
import java.net.URLConnection;  
import java.net.URLDecoder;  
import java.net.URLEncoder;  
import java.util.Iterator;  
import java.util.Map;  
 
import javax.imageio.ImageIO;  
import javax.servlet.http.HttpServletRequest;  
 
/** 
 * URL工具 
 * @author gary 
 * 
 */ 
public class URLUtil {  
 
    /** 
     * 对url进行编码 
     */ 
    public static String encodeURL(String url) {  
        try {  
            return URLEncoder.encode(url, "UTF-8");  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  
      
    /** 
     * 对url进行解码 
     * @param url 
     * @return 
     */ 
    public static String decodeURL(String url){  
        try {  
            return URLDecoder.decode(url, "UTF-8");  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
            return null;  
        }  
    }  
 
    /** 
     * 判断URL地址是否存在 
     * @param url 
     * @return 
     */ 
    public static boolean isURLExist(String url) {  
        try {  
            URL u = new URL(url);  
            HttpURLConnection urlconn = (HttpURLConnection) u.openConnection();  
            int state = urlconn.getResponseCode();  
            if (state == 200) {  
                return true;  
            } else {  
                return false;  
            }  
        } catch (Exception e) {  
            return false;  
        }  
    }  
      
    /** 
     * 将请求参数还原为key=value的形式,for struts2 
     * @param params 
     * @return 
     */ 
    public static String getParamString(Map<?, ?> params) {  
        StringBuffer queryString = new StringBuffer(256);  
        Iterator<?> it = params.keySet().iterator();  
        int count = 0;  
        while (it.hasNext()) {  
            String key = (String) it.next();  
            String[] param = (String[]) params.get(key);  
            for (int i = 0; i < param.length; i++) {  
                if (count == 0) {  
                    count++;  
                } else {  
                    queryString.append("&");  
                }  
                queryString.append(key);  
                queryString.append("=");  
                try {  
                    queryString.append(URLEncoder.encode((String) param[i], "UTF-8"));  
                } catch (UnsupportedEncodingException e) {  
                }  
            }  
        }  
        return queryString.toString();  
    }  
 
    /** 
     * 获得请求的路径及参数 
     * @param request 
     * @return 
     */ 
    public static String getRequestURL(HttpServletRequest request) {  
        StringBuffer originalURL = new StringBuffer(request.getServletPath());  
        Map<?,?> parameters = request.getParameterMap();  
        if (parameters != null && parameters.size() > 0) {  
            originalURL.append("?");  
            originalURL.append(getParamString(parameters));  
        }  
        return originalURL.toString();  
    }  
 
    /** 
     * 抓取网页内容,自动识别编码 
     * @param urlString 
     * @return 
     */ 
    public static String url2Str(String urlString) {  
        try {  
            StringBuffer html = new StringBuffer();  
            URL url = new URL(urlString);  
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
            URLConnection c = url.openConnection();  
            c.connect();  
            String contentType = c.getContentType();  
            String characterEncoding = null;  
            int index = contentType.indexOf("charset=");  
            if(index == -1){  
                characterEncoding = "UTF-8";  
            }else{  
                characterEncoding = contentType.substring(index + 8, contentType.length());  
            }  
            InputStreamReader isr = new InputStreamReader(conn.getInputStream(), characterEncoding);  
            BufferedReader br = new BufferedReader(isr);  
            String temp;  
            while ((temp = br.readLine()) != null) {  
                html.append(temp).append("\n");  
            }  
            br.close();  
            isr.close();  
            return html.toString();  
         } catch (Exception e) {  
            e.printStackTrace();  
            return null;  
         }  
     }  
      
    /** 
     * 保存图片到本地  
     * @param picUrl 
     *      图片URL地址 
     * @param newFileName 
     *      保存文件名 
     * @param dir 
     *      保存目录 
     * @return 
     */ 
    public static void savePic(String picUrl, String newFileName, String dir){  
        try{  
            URL url = new URL(picUrl);  
            InputStream in = url.openStream();     
            BufferedImage srcImage =  ImageIO.read(url.openStream());  
       
            File img = new File(dir + newFileName);  
              
            ImageIO.write(srcImage, "jpg", img);  
            in.close();  
        } catch (IOException e) {     
            e.printStackTrace();     
        }  
    }  
    public static void main(String[] args) {  
        String content = URLUtil.url2Str("http://www.baidu.com");;  
        System.out.println(content);  
    }  

转自:http://www.iteye.com/topic/1040742

原创粉丝点击