java servlet proxy
来源:互联网 发布:class c语言 编辑:程序博客网 时间:2024/06/17 04:19
import java.io.IOException; import java.io.OutputStreamWriter;import java.net.URLDecoder; import java.util.Enumeration;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.httpclient.Header;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.HttpMethod;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.commons.lang.NotImplementedException;public class SimpleProxy { public final void proxyAjaxCall( String url, HttpServletRequest request, HttpServletResponse response) throws IOException { // URL needs to be url decoded url = URLDecoder.decode(url, "utf-8"); OutputStreamWriter writer = new OutputStreamWriter(response.getOutputStream()); HttpClient client = new HttpClient(); try { HttpMethod method = null; // Split this according to the type of request if (request.getMethod().equals("GET")) { method = new GetMethod(url); } else if (request.getMethod().equals("POST")) { method = new PostMethod(url); // Set any eventual parameters that came with our original // request (POST params, for instance) Enumeration paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String paramName = paramNames.nextElement().toString(); ((PostMethod) method).setParameter(paramName, request.getParameter(paramName)); } }else { throw new NotImplementedException( "This proxy only supports GET and POST methods."); } // Execute the method client.executeMethod(method); // Set the content type, as it comes from the server Header[] headers = method.getResponseHeaders(); for (Header header : headers) { if ("Content-Type".equalsIgnoreCase(header.getName())) { response.setContentType(header.getValue()); } } // Write the body, flush and close writer.write(method.getResponseBodyAsString()); writer.flush(); writer.close(); } catch (HttpException e) { //log.error("Oops, something went wrong in the HTTP proxy", null, e); writer.write(e.toString()); throw e; } catch (IOException e) { e.printStackTrace(); writer.write(e.toString()); throw e; } }}
0 0
- java servlet proxy
- 动态代理(Dynamic Proxy)Java Servlet
- java Proxy
- JAVA Proxy
- java Proxy
- Java Proxy
- java proxy
- java Proxy
- java proxy
- smiley-http-proxy-servlet 反向代理
- java.lang.NoSuchMethodException: com.sun.proxy.$Proxy
- java实现proxy
- java 的 Proxy
- Java Dynamic Proxy
- java 代理(proxy)模式
- Java Proxy动态代理
- java Proxy 代理模式
- JAVA实现代理proxy
- Im++ 移动社交通讯云服务产品白皮书——箭扣科技Arrownock
- 通俗理解爬山算法
- \backend\models\core\Country
- 使用HttpClient向服务器端提交数据
- 单链表(线性链表)操作
- java servlet proxy
- debian8+gnome+ssh+配置解析
- 提示fxp不是一个目标文件
- android-Storage Access Framework
- iOS开发常用工具和第三方库
- FastReport经验
- 权限之路径拦截
- linux下VI模式中上下左右键和回退键出现字母
- 删除了Android Private Libraries之后怎么重新添加进去?