package com.yimei.test;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.httpclient.methods.GetMethod;
import com.yimei.util.HttpUtils;
public class TestProxy extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Enumeration<String> e=request.getHeaderNames();
String url=request.getParameter("url");
System.out.println("===url==="+url);
OutputStream so=response.getOutputStream();
GetMethod method = new GetMethod(url);
while(e.hasMoreElements()){
String key=e.nextElement();
String value=request.getHeader(key);
method.addRequestHeader(key, value);
}
try {
int code = HttpUtils.client.executeMethod(method);
if(code==200){
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
InputStream stream = method.getResponseBodyAsStream();
byte[] buf = new byte[1024*512];
while(true) {
int count = stream.read(buf);
if(count<=0) break;
//buffer.write(buf,0,count);
so.write(buf,0,count);
}
//String s=new String(buffer.toByteArray());
//System.out.println("===ssss==="+s);
//response.getWriter().write(s);
}
} catch(Exception ee){
ee.printStackTrace();
}finally{
method.releaseConnection();
}
}
}