61 lines
2.0 KiB
Plaintext
61 lines
2.0 KiB
Plaintext
<%@page session="false"%>
|
||
<%@page import="java.net.*,java.io.*" %>
|
||
<%@ page pageEncoding="UTF-8" isELIgnored="false" %>
|
||
<%
|
||
/**
|
||
*为实现客户端跨域请求而采用jsp制作的代理转发器
|
||
*使用方式:
|
||
*将该文件放在iserver webapps下面你的工程目录下,请求格式:http://localhost:8090/yourRoot/Proxy.jsp?url=yoururl,注意url参数中特殊字符需要转码。
|
||
*支持post,get请求
|
||
*/
|
||
try {
|
||
String reqUrl = request.getParameter("url");
|
||
|
||
URL url = new URL(reqUrl);
|
||
HttpURLConnection con = (HttpURLConnection)url.openConnection();
|
||
con.setRequestProperty("content-type", "application/xml; charset=UTF-8");
|
||
con.setDoOutput(true);
|
||
con.setRequestMethod(request.getMethod());
|
||
//con.setCharacterEncoding("UTF-8");
|
||
int clength = request.getContentLength();
|
||
if(clength > 0) {
|
||
con.setDoInput(true);
|
||
byte[] idata = new byte[clength];
|
||
|
||
//String s = String.ValueOf(clength);
|
||
//System.out.println(clength);
|
||
|
||
BufferedReader br = new BufferedReader(new InputStreamReader((ServletInputStream)request.getInputStream()));
|
||
String line1 = null;
|
||
StringBuilder sb = new StringBuilder();
|
||
while((line1 = br.readLine())!=null){
|
||
sb.append(line1);
|
||
}
|
||
//request.getInputStream().read(idata, 0, clength);
|
||
//String test=String.valueOf(idata);
|
||
//System.out.println(sb);
|
||
|
||
//OutputStreamWriter out=new OutputStreamWriter(con.getOutputStream());
|
||
//out.write(new String(sb.toString().getBytes("ISO-8859-1")));
|
||
|
||
byte[] paradata = sb.toString().getBytes();
|
||
con.getOutputStream().write(paradata);
|
||
}
|
||
response.setContentType(con.getContentType());
|
||
|
||
BufferedReader rd = new BufferedReader(new InputStreamReader(con.getInputStream(),"UTF-8"));
|
||
String line;
|
||
StringBuilder sb1 = new StringBuilder();
|
||
while ((line = rd.readLine()) != null) {
|
||
out.println(line);
|
||
sb1.append(line);
|
||
}
|
||
rd.close();
|
||
|
||
} catch(Exception e) {
|
||
System.out.println(0);
|
||
System.out.println(e);
|
||
|
||
response.setStatus(500);
|
||
}
|
||
%> |