欢迎光临
我们一直在努力

webapi开发教程(如何使用WebAPI或MVC构造POST)

它与OAuth协议有关,

要了解OAuth协议,您必须了解HTTP GET/POST方法。因此,考虑如何使用 Web API 或 MVC 构造 POST 消息并实现客户端-服务器交互。

我使用的工具是 2013 + Web API 2 + MVC 5。

在两个不同的实例中创建两个新的 Web 项目,这两个实例都使用空模板,一个名为 MVC 体系结构,另一个名为 Web API 体系结构。

此处需要两个不同的实例才能使两个 IIS 服务在同一台计算机上同时运行。

我们先来看看客户端:

由于它只是一个演示,我们只需在客户端中创建一个空的 MVC 控制器并命名它。它带有一个 Index() 方法。在这里,我们编写代码来构造请求并发送请求:

namespace Client.Controllers { public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { string url = “”; // 这里我们还不知道服务器的url,因此留空 #region 构造POST请求 HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; request.Method = “POST”; request.ContentType = “application/x-www-form-urlencoded”; request.Host = “localhost:14340”; string body = “client_id=123&redirect_uri=”+url+”&response_type=code”; byte[] bodyBytes = Encoding.UTF8.GetBytes(body); Stream requestStream = request.GetRequestStream(); requestStream.Write(bodyBytes,0,bodyBytes.Length); #endregion #region 发送请求并取得响应

// 必须使用HttpWebRequest.GetResponse()方法,请求才能被发送并取得响应 HttpWebResponse response = request.GetResponse() as HttpWebResponse; StreamReader sr = new StreamReader(response.GetResponseStream()); ViewBag.Response = sr.ReadToEnd(); #endregion return View(); } } }

接下来我们构造服务器端:

在项目中,创建新的 Web API 2 控制器。任意命名(我在这里命名),在控制器中写一个方法Post,返回类型。

最初,我一直认为 POST 的参数可以在属性

中获取,但是在仔细检查了属性的所有属性和方法(包括扩展方法)后,我没有找到任何可以直接读取 POST 消息的请求正文的属性或方法。抬头看来,如果要在 POST 请求中获取请求正文的内容,则必须将参数封装在类中。所以我们构建一个类,如下所示:

namespace Server.Models { /// /// 对于POST请求,必须对请求体的所有参数建立一个模型类。 /// public class RequestArgs { public string client_id { get; set; } public string redirect_uri { get; set; } public string response_type { get; set; } } }

此处的参数和上述客户端方法中的请求数据包内容必须与名称一致(包括大小写)。

之后,我们编写控制器的 POST 方法如下:

namespace Server.Controllers { public class ApiTestController : ApiController { public HttpResponseMessage Post(RequestArgs args) { string client_id = args.client_id; string redirect_uri = args.redirect_uri; string response_type = args.response_type; return Request.CreateResponse(HttpStatusCode.OK, “I have received your message. Client_id = “+client_id+”, RedirectUri = “+redirect_uri+”response_type = “+response_type); } } }

在这里,我们

直接返回消息的内容,在实际项目中,我们可以自己处理传递的参数。

[英文]

在这里,我们 的 ,在 中,我们可以 .

之后我们编译并运行服务器端(最好按 F5 进入调试模式)。您可以看到出现的网页似乎是一个错误页面,但不要管它服务器推送技术,我们的服务器已经在运行。

记下服务器的地址(通常端口号会变),并在客户端中填写服务器的 URL 变量。

编译并运行客户端,如果出现返回的消息(此处为“我有你的”和参数信息),则表示我们的请求成功。

附加说明:如果在 中。如果在 () 方法中传入实体对象,默认是将其转换为 JSON 传递,当然,您可以修改.cs中返回结果的方式。

本文的目的是研究未来的延续,并记录MVC和Web API的研究。

请纠正我!

: 明日香

标题:ASP.NET Web API 实现了 POST 数据包的构建和推送

赞(0) 打赏
未经允许不得转载:艾飞特资源网 » webapi开发教程(如何使用WebAPI或MVC构造POST)
分享到

登录

找回密码

注册