c#调用java的Servlet/Controller/Action实现应用间无缝调用
来源:互联网 发布:软件人才外包公司 编辑:程序博客网 时间:2024/06/01 10:07
c#调用java的Servlet/Controller/Action实现应用间无缝调用
现代企业信息化在有了一定的基础之后,大部分企业都会意识到数据孤岛,什么是数据孤岛呢?就是各个系统的数据库相互独立,各个系统各自建立各自的基础资料等相关信息,系统信息量维护大,重复劳动较多,基础资料维护困难,在出去相关报表的时候,数据对应困难,无法快速的实现各系统之间的数据交互。随之而来的就是数据整合,往往在没有长期规划的情况下,对数据简单的进行集中处理,往往结果就是对整体没有多大帮助,反而会因为数据的错误无法快速定位,反而适得其反,其实在没有合理的规划的时候,通过应用间的接口调用,根据需求进行相应的接口开放才是最佳的解决方案。
今天我们来说说应用间的交互,同语言开发的程序,在交互上不存在很大的疑问,我们主要是针对不同语言开发的应用进行交互,一般我们有两种方式,
第一种:webservice,这种方式不用说了,非常简单,但是XML交互,数据量大了问题会很多
第二种:http,使用http可以解决很多问题,而且http所有网络通信都支持,所以我们就使用http来进行应用间的通信,JAVA中我们使用HttpClient来进行交互,c#中我们使用HttpWebRequest来进行交互,其实原理非常简单,就是模仿提交表单的操作。
返回的JSON如下:
- {"obj":{
- object
- }
- }
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Text;
- using System.Threading.Tasks;
- using System.Web.Script.Serialization;
- namespace ConsoleApplication5
- {
- public class Program
- {
- public static void Main(string[] args)
- {
- string url = "http://IP:port/servlet";
- string param = "key=value&key1=value1";
- postHttpRequest(url, param);
- }
- /*
- * url:请求的servlet地址,不带参数
- * parm:请求的参数,key=value&key1=value1
- * **/
- public static void postHttpRequest(string url, string param)
- {
- HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
- request.Method = "POST";
- request.ContentType = "application/x-www-form-urlencoded";
- request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0";
- string requestForm = param;
- byte[] postdatabyte = Encoding.UTF8.GetBytes(requestForm);
- request.ContentLength = postdatabyte.Length;
- request.AllowAutoRedirect = false;
- request.KeepAlive = true;
- Stream stream;
- stream = request.GetRequestStream();
- stream.Write(postdatabyte, 0, postdatabyte.Length);
- stream.Close();
- HttpWebResponse response = (HttpWebResponse)request.GetResponse();
- Stream responseStream = response.GetResponseStream();
- StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
- string str_serializer = streamReader.ReadToEnd();
- JavaScriptSerializer _jsonobj = new JavaScriptSerializer();
- PermanentBean _obj = _jsonobj.Deserialize<JsonObject>(str_serializer).obj;
- Console.WriteLine(_obj.permanent_num);
- }
- }
- }
0 0
- c#调用java的Servlet/Controller/Action实现应用间无缝调用
- c#调用java的Servlet/Controller/Action实现应用间无缝调用
- 在action中调用其它controller的action
- 如何在yii的controller中调用外部action
- 如何在yii的controller中调用外部action
- java调用controller方法
- C#调用Servlet
- Java调用C#的WebService实例三(实际应用)
- 调用action的方法
- java客户端调用Servlet
- 【Java】Servlet调用流程
- 无缝调用不同模板CSS的办法
- struts2控制器Action与servlet的解耦以及Action动态方法的调用
- java调用C#的dll
- java 调用C#的webservice
- java servlet init配置的调用
- form onsubmit调用C# MVC Controller
- RPC(远程过程调用)应用的java实现
- CSS压缩之:正则五步替换法
- Hessian
- XML与JSON
- B. Working out (递推dp )
- MySQL-linux常用命令
- c#调用java的Servlet/Controller/Action实现应用间无缝调用
- WEB前端开发分享-CSS,JS工具
- Web Service
- Linux 安装Go环境变量
- bzoj2733 [HNOI2012]永无乡
- Python机器学习算法实践——k均值聚类(k-means)
- 详解CheckStyle的检查规则(共138条规则)
- CSS之关于MARGIN居中
- 【BZOJ 2079】[Poi2010]Guilds 暴力