hessian调用只支持post步骤
hessian调用只支持post方法
今天看hessian(版本4.0.7)调用源码时候发现com.caucho.hessian.server.HessianServlet的service方法有以下几句:
于是跟踪看客户端调用是在哪里设置调用方法头为post的,最后发现在类
sun.net.www.protocol.http.HttpURLConnection(查看这个类的源代码,需要反编译)中方法getOutputStream()中进行设置的:
调用这个方法的类是com.caucho.hessian.client.HessianURLConnection
今天看hessian(版本4.0.7)调用源码时候发现com.caucho.hessian.server.HessianServlet的service方法有以下几句:
HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; if (!req.getMethod().equals("POST")) { res.sendError(500, "Hessian Requires POST"); PrintWriter out = res.getWriter(); res.setContentType("text/html"); out.println("<h1>Hessian Requires POST</h1>"); return; }
于是跟踪看客户端调用是在哪里设置调用方法头为post的,最后发现在类
sun.net.www.protocol.http.HttpURLConnection(查看这个类的源代码,需要反编译)中方法getOutputStream()中进行设置的:
if (this.method.equals("GET")) { this.method = "POST"; }
调用这个方法的类是com.caucho.hessian.client.HessianURLConnection
public OutputStream getOutputStream() throws IOException { //此处_conn为sun.net.www.protocol.http.HttpURLConnection return _conn.getOutputStream(); }