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
- URL工具类
- URL工具类
- Yii url 工具类
- URL工具类
- URL处理工具类
- url工具类
- JAVA解析URL工具类
- URL编码解码工具类
- 工具URL
- java查找资源文件URL工具类
- JAVA代码调用url链接工具类
- url转换工具
- url 在线解码 工具
- Java 遍历网站 url(工具类类型)
- 向指定url发送get、post请求工具类示例
- java获取url连接地址参数的工具类
- 工具类:根据URL获取短链接,根据短链接获取真实URL
- URLTester一个URL测试工具
- 火星人敏捷开发手册 原10.31版本已于10.14提前发布,特此通知
- win7伪神key
- 仅通过崩溃地址找出源代码的出错行
- ARC error when compiling
- 所有排序方法之外的排序方法
- URL工具类
- ajax4jsf常用标签的使用
- Systematic
- 启动工程报错
- VC动态改变控件的TAB顺序
- 如何让你的sql跑得更快--bit vs. tinyint vs. int之探讨
- PROTEUS元件库元件称呼
- Flex中事件的初探
- 两种读取速度的比较