怎么 还有人在看这个啊 ,去学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一起使用更加拉风
|
请发表评论