`
sd_zyl
  • 浏览: 43273 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hessian调用只支持post方法

阅读更多
今天看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();
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics