java,
分享于 点击 2127 次 点评:167
java,
/** * zhaochongli * 如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值 取X-Forwarded-For中第一个非unknown的有效IP字符串。如: X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100 用户真实IP为: 192.168.1.110 * @param request * @return */ public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } if(StringUtils.isNotBlank(ip)) ip = ip.split(",")[0]; return ip; }
public static String toUrl(String url,Map paraMap) throws HttpException, IOException{ log.info("url:" + url); HttpClient client = new HttpClient(); client.setTimeout(5000); client.setConnectionTimeout(5000); PostMethod post = new PostMethod(url); post.addRequestHeader("Connection", "close"); NameValuePair[] data = new NameValuePair[0]; String result = "0"; try { if(paraMap != null ){ Set set = paraMap.keySet(); Object[] objs = set.toArray(); if(objs != null && objs.length > 0){ data = new NameValuePair[objs.length]; for(int i=0;i<objs.length;i++){ data[i] = new NameValuePair(objs[i].toString(),paraMap.get(objs[i]).toString()); log.info(objs[i].toString() +"\t" + paraMap.get(objs[i]).toString()); } } } post.setRequestBody(data); client.executeMethod(post); // Header[] headers = post.getResponseHeaders(); int statusCode = post.getStatusCode(); log.info("tourl> statusCode:"+statusCode); result = new String(post.getResponseBodyAsString().getBytes("utf-8")); } catch (Exception e) { e.printStackTrace(); log.error(e); }finally{ post.releaseConnection(); } return result; }
相关文章
- 暂无相关文章
用户点评