近来项目中用到了SOA(面向服务架构),提到SOA不免就想到 webService,例如:java里面的CXF、XFIRE、AXIS技术等;C#中的WCF等。
但是以上的webservice有的时候对于某些简单场景太过复杂,那么就有了基于HTTP协议的简单的GET和POST的方式。
下面以C#为例。
MVC 中Controller就是很好的入口。
Get方式:
<span style="white-space:pre"> </span>[HttpGet]
[ValidateInput(false)]
public Boolean TestGet(Int64 Param1,int <span style="font-family: Arial, Helvetica, sans-serif;">Param2</span><span style="font-family: Arial, Helvetica, sans-serif;">, string </span><span style="font-family: Arial, Helvetica, sans-serif;">Param3</span><span style="font-family: Arial, Helvetica, sans-serif;">,string </span><span style="font-family: Arial, Helvetica, sans-serif;">Param4</span><span style="font-family: Arial, Helvetica, sans-serif;">)</span>
{
<span style="white-space:pre"> </span>//TODO:逻辑处理
<span style="white-space:pre"> </span>return ture;
<span style="white-space:pre"> </span>}
外部访问:Http://localhost:[port]/[ControllerName]/TestGet?
Param1=[参数]&Param2=[参数]&Param3=[参数]&Param4=[参数]
Post方式:
<span style="white-space:pre"> </span>[HttpPost]
[ValidateInput(false)]
public Boolean TestPost()
{
var hri = HttpContext.Request.InputStream;
var readStream = new StreamReader(hri,Encoding.UTF8);
<pre name="code" class="html"><span style="white-space:pre"> </span> String callbackxml<span style="font-family: Arial, Helvetica, sans-serif;"> = readStream.ReadToEnd();</span>
<span style="white-space:pre"> </span> return true;
<span style="white-space:pre"> </span>}
外部访问:Http://localhost:[port]/[ControllerName]/TestPost 将传入参数通过request写入,然后通过response获取返回值。
很多时候这种轻量级的方式适用于简单的需求。