import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.Reader;

import java.io.StringWriter;

import java.io.Writer;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

public class RequestUtil {

public final static String getErrorUrl(HttpServletRequest request) {

String errorUrl = (String) request.getAttribute("javax.servlet.error.request_uri");

if (errorUrl == null) {

errorUrl = (String) request.getAttribute("javax.servlet.forward.request_uri");

}

if (errorUrl == null) {

errorUrl = (String) request.getAttribute("javax.servlet.include.request_uri");

}

if (errorUrl == null) {

errorUrl = request.getRequestURL().toString();

}

return errorUrl;

}

/**

* 获取 请求参数

* @param request

* @return

*/

public static String queryString(HttpServletRequest request){

Map<String, String[]> params = request.getParameterMap();

String queryString = "";

for (String key : params.keySet()) {

String[] values = params.get(key);

for (int i = 0; i < values.length; i++) {

String value = values[i];

if(value!=null){

value=StringUtil.stringURLDecoderByUTF8(value);

}

queryString += key + "=" + value + "&";

}

}

// 去掉最后一个空格

queryString = queryString.substring(0, queryString.length() - 1);

return queryString;

}

public final static StringBuilder getErrorInfoFromRequest(HttpServletRequest request, boolean isInfoEnabled) {

StringBuilder sb = new StringBuilder();

String errorUrl = getErrorUrl(request);

sb.append(StringUtil.formatMsg("Error processing url: %1, Referrer: %2, Error message: %3.\n", errorUrl,

request.getHeader("REFERER"), request.getAttribute("javax.servlet.error.message")));

Throwable ex = (Throwable) request.getAttribute("exception");

if (ex == null) {

ex = (Throwable) request.getAttribute("javax.servlet.error.exception");

}

if (ex != null) {

sb.append(StringUtil.formatMsg("Exception stack trace: \n", ex));

}

return sb;

}

public final static String getHtml(String fullUrl) throws IOException{

URL url = new URL(fullUrl);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

InputStream in = conn.getInputStream();

Writer writer = new StringWriter();

if (in != null) {

char[] buffer = new char[1024];

try {

Reader reader = new BufferedReader(new InputStreamReader(in,

"UTF-8"));

int n;

while ((n = reader.read(buffer)) != -1) {

writer.write(buffer, 0, n);

}

} finally {

in.close();

}

}

return writer.toString();

}

public  static void main(String[]args) throws IOException{

String url="http://www.baidu.com";

String a=getHtml(url);

System.out.println("ss:"+a);

}

}

RequestUtil 获取网址页面信息的更多相关文章

  1. js获取当前页面信息

    设置或获取对象指定的文件名或路径.<script>alert(window.location.pathname)</script> 设置或获取整个 URL 为字符串.<s ...

  2. Python获取web页面信息

    import sys, urllib2 # req = urllib2.Request(sys.argv[1]) req = urllib2.Request('http://www.sina.com. ...

  3. js获取当前页面url网址信息

    js如何准确获取当前页面url网址信息 在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结. 下面我们举例一个URL,然后获得它的各个 ...

  4. js准确获取当前页面url网址信息

    这篇文章主要为大家介绍了js准确获取当前页面url网址信息的多种方法,包括正则法.split拆分法等,需要的朋友可以参考下   在WEB开发中,时常会用到javascript来获取当前页面的url网址 ...

  5. .net 获取https页面的信息 在iis7.5服务器上不管用

    让我纠结了一天多的问题,给大家看下,有相同情况的可以不用浪费时间了,本人当时找了好半天都没找到什么有用的信息,项目在本地没有问题,但部署在服务器后,获取不到https页面的信息,加入下面的代码就可以了 ...

  6. scrapy获取页面信息

    本例子用命令行调试的方式,演示如何获取页面的特定信息: 0) 示例页面 1) 使用scrapy shell获取目标页面: scrapy shell http://bj.lianjia.com/ersh ...

  7. Python+Selenium自动化-获取页面信息

    Python+Selenium自动化-获取页面信息   1.获取页面title title:获取当前页面的标题显示的字段 from selenium import webdriver import t ...

  8. Asp获取网址相关参数大全

      Asp获取网址相关参数大全 代码一:[获取地址中的文件名,不包含扩展名]<%dim Url,FileName,File Url=split(request.servervariables(& ...

  9. Javascript动态生成的页面信息爬取和openpyxl包FAQ小记

    最近,笔者在使用Requests模拟浏览器发送Post请求时,发现程序返回的html与浏览器F12观察到的略有不同,经过观察返回的response.text,cookies确认有效,因为我们可以看到返 ...

随机推荐

  1. python的map和reduce函数

    map函数时python的高级内置函数 语法为:map(function, iterable, ...) 参数:function -- 函数iterable -- 一个或多个序列 将function作 ...

  2. MySQL/MariaDB数据库的Galera高可用性集群实战

      MySQL/MariaDB数据库的Galera高可用性集群实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Galera Cluster概述 1>.什么是Gale ...

  3. 移动端媒体查询CSS3适配规则

    该媒体查询适配规则是以UI设计图750p宽度为版本的,比如PS量的是450px,在书写时写 (450rem/2/15). @media (min-width:240px) and (max-width ...

  4. VUE--404页面

    <一 404 动态页面> <!-- 2017/5/26- yyy-404页面--> <template> <section class="page_ ...

  5. 我感觉这个书上的微信小程序登陆写得不好

    基本功能是OK,但是感觉传的数据太多,不安全,需要改写. App({ d: { hostUrl: 'http://www.test.com/index.php', //请填写您自己的小程序主机URL ...

  6. zookeeper题目

    1. ZooKeeper是什么?2. ZooKeeper提供了什么?3. Zookeeper文件系统4. ZAB协议?5. 四种类型的数据节点 Znode6. Zookeeper Watcher 机制 ...

  7. 如果在使用谷歌的gson的时候,在返回时间类型的数据的时候,

    可能会出现在long类型的时间后面多3个0 如下图所示 可以自己创建一个json序列化的类 public class Date2LongSerializer extends JsonSerialize ...

  8. ACM-ICPC 2018 南京赛区现场赛 K. Kangaroo Puzzle (思维+构造)

    题目链接:https://codeforc.es/gym/101981/attachments 题意:在 n * m 的平面上有若干个袋鼠和墙(1为袋鼠,0为墙),每次可以把所有袋鼠整体往一个方向移动 ...

  9. S1_搭建分布式OpenStack集群_12 界面horizon安装

    一.界面的安装控制节点安装软件包:# yum install openstack-dashboard -y 修改配置文件:# vim /etc/openstack-dashboard/local_se ...

  10. 2019.12.09 java循环(do……while)

    class Demo05{ public static void main(String[] args) { int sum=0; int i=1; do{ sum+=i; i++; }while(i ...