一、webapi
1.在webapiconfig中移除xml的返回格式,返回格式就自动使用Json格式
config.Formatters.Remove(config.Formatters.XmlFormatter);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace WebApplication2
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//移除XML格式,返回值自动就变成json格式
config.Formatters.Remove(config.Formatters.XmlFormatter);
// Web API 配置和服务
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
2.创建一个pig的控制器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace WebApplication2.Controllers
{
public class PigController : ApiController
{
// GET: api/Pig
//public IEnumerable<string> Get()
//{
// return new string[] { "大pig", "value2" };
//}
public Pig Get()
{
Pig pig = new Pig()
{
Age = 1,
Name = "大黄狗"
};
return pig;
}
// GET: api/Pig/5
public string Get(int id)
{
return "value";
}
// POST: api/Pig
public void Post([FromBody]string value)
{
}
// PUT: api/Pig/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE: api/Pig/5
public void Delete(int id)
{
}
}
}
3.发布webapi网站,url=
http://localhost:34050/api/Pig
二、客户端调用
新建一个网站,简单一点,就用web窗体,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
using System.Net;
public partial class Pig : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//1.0请求的webapi的url:http://localhost:34050/api/Pig
//1.0构造一个制定url请求对象
WebRequest request = WebRequest.Create("http://localhost:34050/api/Pig");
//2.0指定请求的方法为get
request.Method = "Get";
//3.0发出请求获取相应对象
WebResponse response = request.GetResponse();
//4.0获取相应报文体中的数据
System.IO.Stream st = response.GetResponseStream();
//5.0将st转换成字符串
string resStr = string.Empty;
using (System.IO.StreamReader sr = new System.IO.StreamReader(st))
{
//从当前流的开始位置读至结束位置
resStr = sr.ReadToEnd();//{"Age":1,"Name":"大黄狗"}
}
//6.0将结果绑定到Grid上
// 将json格式的字符串反序列化成集合
System.Web.Script.Serialization.JavaScriptSerializer jsoner = new System.Web.Script.Serialization.JavaScriptSerializer();
ResultPig rpig= jsoner.Deserialize<ResultPig>(resStr);
////如果结果是[{},{}]
//jsoner.Deserialize<List<ResultPig>>(resStr);
List<ResultPig> list = new List<ResultPig>() { rpig };
GridView1.DataSource = list;
GridView1.DataBind();
//Response.Write(resStr);
}
}
public class ResultPig
{
public int Age { get; set; }
public string Name { get; set; }
}
}
版权声明:本文为hyunbar原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。