dotnet rest实现

最近项目用到rest web service

     rest 就不介绍了,网上多的是,闲话少说。

     建一个服务器端类

namespace MyWeb
{
    public class MyjInteger : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {


            if (context.Request.ContentType.Equals("text/p1"))
            {
                Encoding encoding = Encoding.GetEncoding("utf-8");

                Stream instream = context.Request.InputStream;

                byte[] bytes = new byte[instream.Length];
                instream.Read(bytes, 0, bytes.Length);

                // 设置当前流的位置为流的开始
                instream.Seek(0, SeekOrigin.Begin);

                string sData = encoding.GetString(bytes);
                context.Response.Write("您输入的是:"+sData);
            }
            else if (context.Request.ContentType.Equals("text/p2"))
            {
                string output = context.Request.QueryString["input"].ToString();
                context.Response.Write(output);
            }
            else
            {
                context.Response.Write(context.Response.ContentType.ToString());
            }
       
        }
 

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

 

生成DLL,App_Code.dll,建一个空站点,引用这个DLL,web.config添加

 

  <httpHandlers>
   <add type="MyWeb.MyjInteger, App_Code" path="MyjInteger/*" verb="*"/>

  </httpHandlers>

http://*/WebSite1/MyjInteger/ 这个地址就可以访问了

添加客户端页面

    protected void Page_Load(object sender, EventArgs e)
    {


        Encoding encoding = Encoding.GetEncoding("utf-8");

        byte[] postdata = encoding.GetBytes("好啊啊啊啊"); //所有要传参数拼装
        // Prepare web request...
   
        HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(http://*/WebSite1/MyjInteger/);
        myRequest.Method = "POST";
        myRequest.ContentType = "text/p1";
        myRequest.ContentLength = postdata.Length;
        Stream newStream = myRequest.GetRequestStream();
        // Send the data.
        newStream.Write(postdata, 0, postdata.Length);
        newStream.Close();
        // Get response
        HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
        StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
        string content = reader.ReadToEnd();

        Response.Write(content);
    }

 

 

返回结果:您输入的是:好啊啊啊啊

通过HttpWebRequest  方式访问,简单的rest架构,和json一起使用更加拉风

http://www.cnblogs.com/wcgwolf/archive/2008/10/16/1312244.html

你可能感兴趣的:(REST)