我在网站1有一个servlet,接收到post请求后,我希望让另一个网站的servlet来进一步处理,并且获得它处理的结果,然后再在自身网站转到一个jsp页面显示结果。在asp中可以构造一个request,然后像调用函数一样调用一个url,这个函数会直接返回,然后就可以接收到response处理其中的信息。
请问Java中应该如何写。
request中是multipart/form-data的,有文件,我希望直接转给另一个网站的servlet去处理,就像调用函数那样返回response。
两个网站都是自己做的,都可以编码。
请问Java中应该如何写。
request中是multipart/form-data的,有文件,我希望直接转给另一个网站的servlet去处理,就像调用函数那样返回response。
两个网站都是自己做的,都可以编码。
我用的代码:
URL httpurl = new URL(target);
urlConn = (HttpURLConnection)httpurl.openConnection();
urlConn.setRequestProperty("Content-Type","multipart/form-data");
urlConn.setRequestProperty("Connection","Keep-Alive");
urlConn.setDoOutput(true);
OutputStream out = urlConn.getOutputStream();
byte[] byteBuffer = new byte[1024];
ServletInputStream sis = request.getInputStream();
try{
int len = sis.read(byteBuffer);
while(len!=-1){
System.out.println(String.valueOf(len));
out.write(byteBuffer, 0, len);
len = sis.read(byteBuffer);
}
}catch(Exception ex){
ex.printStackTrace();
}
finally{
out.flush();
out.close();
sis.close();
}
//receive
int res = urlConn.getResponseCode();
在接收方总提示
the request was rejected because no multipart boundary was found
能给我一个代码么?
你说的办法也挺好的,不过我没找到他怎么直接处理HttpServletRequest?
URL httpurl = new URL(target);
urlConn = (HttpURLConnection)httpurl.openConnection();
urlConn.setRequestProperty("Content-Type",request.getContentType());
urlConn.setRequestProperty("Content-Length", String.valueOf(request.getContentLength()));
urlConn.setRequestProperty("Connection","Keep-Alive");
urlConn.setDoOutput(true);
OutputStream out = urlConn.getOutputStream();
byte[] byteBuffer = new byte[1024];
ServletInputStream sis = request.getInputStream();
try{
int total = 0;
int len = sis.read(byteBuffer);
while(len!=-1){
total = total+len;
System.out.println(String.valueOf(total));
out.write(byteBuffer, 0, len);
len = sis.read(byteBuffer);
}
}catch(Exception ex){
ex.printStackTrace();
}
finally{
out.flush();
out.close();
sis.close();
}
//receive
int res = urlConn.getResponseCode();
target是目标网站servlet的url
request是原网站接收到的HttpServletRequest对象