asp.net客户端
的.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Image_Identify.aspx.cs"
Inherits="WebApplication.iva.Image_Identify" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server" enctype="multipart/form-data" method="post">
<div>
<asp:Button ID="Button_Post" runat="server" Text="submit" OnClick="Button_PostWebRequest" />
</div>
</form>
</body>
</html>
.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.IO;
using System.Text;
namespace WebApplication.iva
{
public partial class Image_Identify : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string postUrl = "http://xxx/WebUploadHandleServlet";
string paramData = "E:\\1111.jpg";
string ret = string.Empty;
Encoding dataEncode = Encoding.UTF8;
try
{
byte[] byteArray = dataEncode.GetBytes(paramData);
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
webReq.Method = "POST";
webReq.ContentType = "multipart/mixed";
webReq.ContentLength = byteArray.Length;
Stream newStream = webReq.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);
newStream.Close();
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);
ret = sr.ReadToEnd();
sr.Close();
response.Close();
newStream.Close();
}
catch (Exception ex)
{
Response.Write("<script>alert('" + ex.Message + "')</script>");
}
}
protected void Button_PostWebRequest(object sender, EventArgs e)
{
}
}
}
java服务器
@WebServlet(asyncSupported = true, urlPatterns = { "/WebUploadHandleServlet" })
public class WebUploadHandleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private final long MAXSize = 1024 * 1024 * 4 * 2L;// 4*2MB
private String filedir = null;// before
private String resdir = null;// after
/**
* @see HttpServlet#HttpServlet()
*/
public WebUploadHandleServlet() {
super();
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
System.out.println("init...");
JNIDispatcher.getInstance();
filedir = config.getServletContext().getRealPath("WEB-INF/original_images");
resdir = config.getServletContext().getRealPath("WEB-INF/result_images");
File file1 = new File(filedir);
File file2 = new File(resdir);
if (!file1.exists() && !file2.exists()) {
System.out.println("create dir");
file1.mkdir();
file2.mkdir();
System.out.println("create success");
}
System.out.println("filedir=" + filedir);
System.out.println("resdir=" + resdir);
super.init(config);
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("receive request");
double begin_time = System.currentTimeMillis();
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
//FileUpload upload = new FileUpload(factory);20161005
upload.setSizeMax(-1);
upload.setHeaderEncoding("utf-8");
ImageDispose disposer = new ImageDispose(filedir, resdir);
// response.setContentType("text/html");
response.setContentType("multipart/form-data");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String respondResult = null;
String filename = null;
try {
List<FileItem> items = upload.parseRequest(request);
if (items != null && !items.isEmpty()) {
System.out.println("items size:" + items.size());
double start_time = System.currentTimeMillis();
for (FileItem fileItem : items) {
filename = fileItem.getName();
String filepath = filedir + File.separator + filename;
System.out.println("file save path:" + filepath);
InputStream inputStream = fileItem.getInputStream();
respondResult = disposer.process(inputStream, filename);
inputStream.close();
fileItem.delete();
}
double end_time = System.currentTimeMillis();
System.out.println("JNI handle" + filename + "time:" + (end_time - start_time) + "ms");
System.out.println("total time:" + (end_time - begin_time));
}
out.write(respondResult);
} catch (Exception e) {
e.printStackTrace();
out.write("文件" + filename + "upload fail:" + e.getMessage());
}
System.out.println("finish!");
}
@Override
public void destroy() {
System.out.println("release JNI...");
JNIDispatcher.getInstance().releaseJNI();
super.destroy();
}
}
我打印的结果如下。 似乎java服务器已收到http请求但无法解析。 希望得到帮助!