asp.net mvc编写跨域调用WEBAPI传递JSON数据

2025-04-20 08:41:26

1、编写实体类 public class KnowledgeLecture { public string id; public string title; public string lectureContent; public string organize; public string participant; public DateTime? lecturetime; public DateTime? creatorTime; }

2、编写webapi 代码,可以发布出去,方便其他系统调用://<summary> //获取所有的应急知识讲座//</summary> //<returns>id、讲座标题、创建时间等的json数据</returns>[HttpGet]public IEnumerable<KnowledgeLecture> GetAllKnowledgeLectureInfo(){DateTime time = DateTime.Now.ToString("yyyy-MM-dd").ToDate();var data = (from s in db.FXJC_yjzh_training_knowledgeLecture.Where(s => s.deleteMark != true) select s);List<KnowledgeLecture> Result = new List<KnowledgeLecture>();foreach (var o in data) { Result.Add(new KnowledgeLecture() { id = o.id, title = o.lectureTitle, lectureContent=o.lectureContent, organize=o.Sys_Organize.F_FullName, participant=o.participant, lecturetime=o.lecturetime, creatorTime = o.creatorTime, }); } return Result.OrderByDescending(s => s.creatorTime); }

3、新的应用系统需要调用上面的接口,编老揉孟阼写新的业务前端代码<div class="news_item&qu泠贾高框ot; style="display: none;"> <ul class="news" id="zsjz"> </ul></div><script> $(function () { GetknowledgeLectureInfo(); })function GetknowledgeLectureInfo() { $.ajax({ url: "/EmergencyManage/ECS/GetknowledgeLectureInfo", dataType: "json", async: true,success: function (data) { if (!!data) { $(data).each(function (index, item) { var oldTime = (new Date(item.creatorTime)).getTime(); var curTime = new Date(oldTime).format("yyyy-MM-dd hh:mm"); var oldTime1 = (new Date(item.lecturetime)).getTime(); var curTime1 = new Date(oldTime).format("yyyy-MM-dd "); $("#zsjz").append('<li style=""><a href="">' + item.organize + '&nbsp;&nbsp;' + item.title + '&nbsp;&nbsp;' + item.participant + '&nbsp;&nbsp;' + item.curTime1 + '<small style="position:relative; float:right">' + curTime + ' </small></a></li>'); }); } else { $("#zsjz").append("暂无知识讲座哦!"); } }, error: function (data) { $("#zsjz").append(data.responseText); } }); }</script>

4、新的应用编写后端代码,调用webapipublic string GetknowledgeLectureInfo(){ stri荏鱿胫协ng url = "http://192.168.3.15:8000/api/Emergency/GetAllKnowledgeLectureInfo"; return GetUrlInfo(url);}public string GetUrlInfo(string url){ try { //访问http方法 string strBuff = ""; Uri httpURL = new Uri(url); ///HttpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法建立,并进行强制的类型转换 HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(httpURL); ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换 HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse(); ///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容 ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理 Stream respStream = httpResp.GetResponseStream(); ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以 //StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8) StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8); strBuff = respStreamReader.ReadToEnd(); return strBuff; } catch (Exception e) { return e.Message; } }

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢