package edu.fudan.eservice.common.utils;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
public class CommonUtil {
public static String getRemoteip()
{
HttpServletRequest request=ServletActionContext.getRequest();
String rip=request.getHeader("x-forwarded-for");
if(rip==null || rip.trim().equals(""))
rip=request.getRemoteAddr();
else
rip+=request.getRemoteAddr();
return rip;
}
public static String getLoginURL()
{
String context=ServletActionContext.getServletContext().getContextPath();
String uisUrl=context+(context.endsWith("/")?"":"/")+"login.act";
uisUrl+="?redir="+ServletActionContext.getRequest().getRequestURL();
return uisUrl;
}
public static boolean isEmpty(Object obj)
{
if(obj==null)
return true;
if(obj instanceof String)
{
String s=(String) obj;
if("".equals(s.trim()))
return true;
}
return false;
}
public static boolean eq(Object o1,Object o2)
{
return o1==null && o2==null || o1!=null &&o1.equals(o2);
}
public static StringBuffer getWebContent(String urlstr) throws Exception
{
HttpURLConnection url =(HttpURLConnection )new URL(urlstr).openConnection();
url.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36");
BufferedReader reader =null;
if(url.getResponseCode()>=400)
reader=new BufferedReader(new InputStreamReader(url.getErrorStream(),"utf-8"));
else reader=
new BufferedReader(
new InputStreamReader(url.getInputStream(),"utf-8"));
String s;
StringBuffer ret=new StringBuffer();
while ((s = reader.readLine()) != null) {
ret.append(s);
}
return ret;
}
public static StringBuffer postWebRequest(String urlstr,byte[] content,String content_type) throws Exception
{
HttpURLConnection url =(HttpURLConnection )new URL(urlstr).openConnection();
url.setRequestMethod("POST");
url.setDoOutput(true);
if(!isEmpty(content_type))
{
url.setRequestProperty("Content-Type", content_type);
}
DataOutputStream out = new DataOutputStream(
url.getOutputStream());
out.write(content);
out.close();
BufferedReader reader =null;
if(url.getResponseCode()>=400)
reader=new BufferedReader(new InputStreamReader(url.getErrorStream(),"utf-8"));
else reader=
new BufferedReader(
new InputStreamReader(url.getInputStream(),"utf-8"));
String s;
StringBuffer ret=new StringBuffer();
while ((s = reader.readLine()) != null) {
ret.append(s);
}
return ret;
}
}