前段时间刚将一个需求融入到OA产品中,又遇到了另一个问题,通过一个.net平台调用写好的服务,进行http请求,来实现两个项目之间信息的流转。
因为是相对传统的地铁行业,所以大部分稳定的项目都是之前.net版本涉及到与最近引进的OA产品(java项目)之间的交互,所以就有了通过http发布服务进行服务访问的需求。
可能读者会问了,直接将需要的数据直接操作对应数据库不就可以了,这个也是一个方式,但是如果所访问的系统中运用到了缓存那么这样的形式将遇到局限,总不能操作一次数据库就重启一下服务吧?况且直接进行数据库的访问对于设计来说是不太合理的~
废话不多说,直接上代码,其实很简单:
- string url = "http://1.1.1.110/seeyon/adSynchronization.do?loginname=zhangsan&id=lisi"; WebRequest wRequest = WebRequest.Create(url); wRequest.Method = "GET"; wRequest.ContentType = "text/html;charset=UTF-8"; WebResponse wResponse = wRequest.GetResponse(); Stream stream = wResponse.GetResponseStream(); StreamReader reader = new StreamReader(stream, System.Text.Encoding.Default); string str = reader.ReadToEnd(); //url返回的值 reader.Close(); wResponse.Close(); -
其实还可以再OA系统中直接查询对应数据库信息,进行更新操作,不过这样也势必增加了两个系统之间的耦合,不同语言的项目之间通过服务调用的方式还是比较方便直接的。
面对问题不断的去寻求思路,找到解决的途径,最适合的就是最好的O(∩_∩)O~