怎麼 還有人在看這個啊 ,去學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一起使用更加拉風