大家好,又见面了,我是你们的朋友全栈君。
目录
前言:
MVC对于已经跨域的接口进行解析是个比较容易的事情。况且在第四章节的时候已经通过Ajax进行了页面的解析测试,效果也比较明显。所以本章节从容应对。
这个世界上只有一种真正的英雄主义:
认清生活的真相,并且仍然热爱它。难道向上攀爬的那条路,不是比站在顶峰更让人心潮澎湃吗?
1、MVC项目创建
在解决方案上点击【鼠标右键】,依次选择【添加】【新建项目】
选择【ASP.NET Web应用程序(.NET Framework)】项目,点击【下一步】
输入项目名称,这里是【MVC】
选择【MVC】项目,并取消【为HTTPS配置】,点击【创建】
完成创建:
2、【GET】请求的API解析
创建返回对象
[Serializable]
public class ResultType
{
public int code { get; set; }
public string message { get; set; }
public object result { get; set; }
}
编写解析过程(HomeController.cs):
//客户端请求
HttpClient http = new HttpClient();
//请求地址
string url = "http://localhost:5833/api/Test/GetInfo";
//异步请求
Task<string> task = http.GetStringAsync(url);
//获取数据解析,并发送至前台
ViewBag.ResultTyle = JsonConvert.DeserializeObject<ResultType>(task.Result);
return View();
前台编码:
清空当前【Index】视图所有内容【Ctrl+A+Delete】
输入以下编码:
@ViewBag.ResultTyle.code
<hr/>
@ViewBag.ResultTyle.message
<hr/>
@ViewBag.ResultTyle.result
启动测试(需要api与mvc均运行)
先行启动【demo】的【api】项目后,将 【MVC】设为启动项。
解析成功:
3、【Post】请求【API】解析
编写解析过程(HomeController.cs):
//客户端请求
HttpClient http = new HttpClient();
var str = "";//请求数据。这里为空
HttpContent content = new StringContent(str);
//请求地址
string url = "http://localhost:5833/api/Test/GetPostInfo";
Task<HttpResponseMessage> postTask = http.PostAsync(url,content);
HttpResponseMessage result = postTask.Result;//拿到网络请求结果
result.EnsureSuccessStatusCode();//抛出异常
Task<string> task = result.Content.ReadAsStringAsync();//异步读取数据
//发送值前台
ViewBag.ResultTyle = JsonConvert.DeserializeObject<ResultType>(task.Result);
编码位置:
请求效果:
如果需要传递数据请进行序列化操作:
//例如:
//序列化
user user = new user();
user.userName= "admin";
user.password = "123456";
var str = JsonConvert.SerializeObject(user);
post传参案例
注:【传参无非就是以【?&】字符串拼接后执行】
[HttpPost]
public void UpdateInfo(string id,string nickName,string introduce) {
//请求地址
string url = string.Format("http://localhost:5534/api/Test/UpdateById?id={0}&nickName={1}&introduce={2}", id, nickName, introduce);
//发送值前台
Success success = RequestPost(url);
//根据请求返回判断结果
if (success.code == 200)
{
Response.Write("<script>alert('" + success.message + "');window.location.href='Index'</script>");
}
else
{
Response.Write("<script>alert('" + success.message + "');window.location.href='UpdatePage'</script>");
}
}
/// <summary>
/// Post
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public Success RequestPost(string url) {
//客户端请求
HttpClient http = new HttpClient();
var str = "";//请求数据。这里为空
HttpContent content = new StringContent(str);
//请求地址
Task<HttpResponseMessage> postTask = http.PostAsync(url, content);
HttpResponseMessage result = postTask.Result;//拿到网络请求结果
result.EnsureSuccessStatusCode();//抛出异常
Task<string> task = result.Content.ReadAsStringAsync();//异步读取数据
//发送值前台
return JsonConvert.DeserializeObject<Success>(task.Result);
}
希望能对大家有所帮助。
第五章【五、ASP.NET MVC (五、HttpClient接口解析)】完结。
【一、控制器与视图:https://laoshifu.blog.csdn.net/article/details/120126288】
【二、数据传递:https://laoshifu.blog.csdn.net/article/details/120127320】
【三、表单与文件上传:https://laoshifu.blog.csdn.net/article/details/120130566】
【四、ASP.NET Web API应用程序与跨域操作:https://laoshifu.blog.csdn.net/article/details/120160728】
【五、HttpClient接口解析:https://laoshifu.blog.csdn.net/article/details/120332379】
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162930.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...