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);
|
|||
|
}
|
|||
|
%>
|