应用场景:人力资源系统在添加人员或修改人员信息时,向其他系统发送信息。其他系统将读取这条发送过来的人员ID,然后从人力资源的数据库中读取人员信息,并将信息添加或修改写到本系统的数据库中。
代码:
URL itsmUrl = new URL(Constants.Send_Post_ITSM);
URLConnection itsmConn = itsmUrl.openConnection();
itsmConn.setDoOutput(true);
itsmConn.connect();
OutputStream writer = itsmConn.getOutputStream();
writer.write(("model=MoUserInfo&id="+(String)userinfo.getUserId().toString()).getBytes());
writer.flush();
writer.close();
InputStream reader = itsmConn.getInputStream();
reader.close();
在接收信息的系统中可直接通过request.getParameter()来得到发送过来的参数。
注意事项:虽然这里的意图是人力资源系统向其他系统单方面的发送信息,并不需要接收其他系统返回的信息。
但是,仍然需要从URLConnection中建立一个InputStream,否则其他系统就接收不到发送过去的信息。换句话说,这种通信方式是在调用URLConnection的getInputStream()时才真正发送信息的。我的理解是:因为基于HTTP的请求,必须是 请求/响应 模式。