Skip to content

Instantly share code, notes, and snippets.

@cuter44
Created July 11, 2014 06:43
Show Gist options
  • Save cuter44/fc74fd51eed22c64a458 to your computer and use it in GitHub Desktop.
Save cuter44/fc74fd51eed22c64a458 to your computer and use it in GitHub Desktop.
轻量级Http代理服务器, 主治跨域禁止!! (╯‵д′)╯︵┻━┻
package com.github.cuter44.util.http;
import java.util.Enumeration;
import java.net.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.http.*;
import org.apache.http.client.fluent.*;
public class HttpProxy extends HttpServlet
{
@Override
public void doGet(HttpServletRequest inReq, HttpServletResponse outResp)
{
try
{
// url
String url = inReq.getParameter("url");
String host = url.split("/")[2];
System.out.println(url);
// get
Request outReq = Request.Get(url);
System.out.println();
// header
Enumeration<String> reqHeaders = inReq.getHeaderNames();
while (reqHeaders.hasMoreElements())
{
String key = reqHeaders.nextElement();
outReq.setHeader(key, inReq.getHeader(key));
System.out.println(key+"="+inReq.getHeader(key));
}
outReq.setHeader("Host", host);
System.out.println();
HttpResponse inResp = outReq.execute().returnResponse();
// header
Header[] respHeaders = inResp.getAllHeaders();
for (int i=0; i<respHeaders.length; i++)
{
outResp.setHeader(respHeaders[i].getName(), respHeaders[i].getValue());
System.out.println(respHeaders[i].getName()+"="+respHeaders[i].getValue());
}
// content
inResp.getEntity().writeTo(
outResp.getOutputStream()
);
//outResp.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
@cuter44
Copy link
Author

cuter44 commented Jul 11, 2014

目前只支持get请求...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment