.net 2.0 rest 實現(c#)

來源:互聯網
上載者:User

     怎麼 還有人在看這個啊 ,去學wcf啊

 

 

最近項目用到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一起使用更加拉風

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.