/**
* 可以传对象的请求转发,对象已流形式放入HTTP中
*/
public static Object doPost(Map<String,Object> parmMap,String url)
{
Object object = null;
HttpClient hc = new HttpClient();
String fullURL = PropertiesUtils.getValue("app") + url;
PostMethod pm = new PostMethod(fullURL);
pm.setRequestHeader("Content-Type","application/octet-stream");
RequestEntity requestEntity = new ByteArrayRequestEntity(SerializationUtils.serialize(parmMap));
pm.setRequestEntity(requestEntity);
ObjectInputStream ois = null;
try {
hc.executeMethod(pm);
ois = new ObjectInputStream(pm.getResponseBodyAsStream());
object = ois.readObject();
} catch (HttpException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return object;
}
/**
* @param request
* @param response
* @param o 流化的对象
* 将结果对象写入输出流中
*/
protected void processStreamResponse(HttpServletRequest request,HttpServletResponse response,Object o)
{
byte[] bt = SerializationUtils.serialize(o);
OutputStream out = null;
try {
out = response.getOutputStream();
out.write(bt);
out.close();
} catch (IOException e) {
if (null != out) {
try {
out.close();
} catch (IOException e1) {
log.error(e.getMessage(),e);
}
}
log.error(e.getMessage(),e);
}
}
/**
* @param request
* @param response
* @return 从输入流中读取对象参数
*/
protected Map<String, Object> processStreamRequest(HttpServletRequest request,HttpServletResponse response)
{
ObjectInputStream oi = null;
Map<String, Object> map = null;
try {
oi = new ObjectInputStream(request.getInputStream());
} catch (IOException e) {
log.error(e.getMessage(),e);
}
try {
map = (HashMap<String, Object>) oi.readObject();
} catch (IOException e) {
log.error(e.getMessage(),e);
} catch (ClassNotFoundException e) {
log.error(e.getMessage(),e);
}
return map;
}