感觉崩溃
模仿别人写的··改改··好像有点问题···
大体上功能是post请求给servlet,我转发给另一个servlet·· 解析返回值,取其中一部分,然后传给另一个jsp页面,输出
ShuJuservice.java
public class ShuJuServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
String respMessage = ShuJuService.processRequest(req);
req.setAttribute("result",respMessage);
req.getRequestDispatcher("2.jsp").forward(req, resp);
}
}
ShuJuservier,java
public class ShuJuService {
public static String processRequest(HttpServletRequest req) throws IOException{
ServletInputStream sis = req.getInputStream();
final int BUFFER_SIZE = 8 * 1024;
byte[] buffer = new byte[BUFFER_SIZE];
int length = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int bLen=0;
while((bLen=sis.read(buffer))>0){
baos.write(buffer, 0, bLen);
}
String bao = baos.toString();
String json = formUpload("http://121.42.43.44:80/bar/serv/pushAttachment",bao);
ShuJuResult ShuJuResult = new Gson().fromJson(
json, ShuJuResult.class);
String result = ShuJuResult.getResult();
String resultUrl ="http://121.42.43.44:80/bar/sample/preview?aid={aid}";
resultUrl = resultUrl.replace("{aid}", result);
return resultUrl;
}
public static String formUpload(String urlStr,String req) {
String res = "";
HttpURLConnection conn = null;
String BOUNDARY = "---------------------------123821742118716"; //boundary就是request头和上传文件内容的分隔符
try {
URL url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(30000);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn
.setRequestProperty("User-Agent",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)");
conn.setRequestProperty("Content-Type",
"multipart/form-data; boundary=" + BOUNDARY);
OutputStream out = new DataOutputStream(conn.getOutputStream());
// text
out.write(req.toString().getBytes());
out.flush();
out.close();
// 读取返回数据
StringBuffer strBuf = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
// BufferedReader reader =new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
strBuf.append(line).append("\n");
}
res = strBuf.toString();
reader.close();
reader = null;
} catch (Exception e) {
System.out.println("发送POST请求出错。" + urlStr);
e.printStackTrace();
} finally {
if (conn != null) {
conn.disconnect();
conn = null;
}
}
return res;
}
}