如何使用&到一个web api
本文关键字:一个 web api 何使用 | 更新日期: 2023-09-27 17:52:43
我有一个问题,张贴内容&比如"M&A是趋势....",消息只停在M
MVC Web API
[HttpPost]
public IHttpActionResult Post([FromUri] CommentModel param)
{}
public class CommentModel
{
public int Id { get; set; }
public string Message { get; set; }
...
}
Web Api配置:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
从angularJS调用:
var message = encodeURI($scope.message);
var request = $http.post('api/comment/?message=' + message);
....
理想情况下,当您执行HTTP/POST时,您将数据作为实体作为请求主体的一部分(而不是在URI中)发送。
也就是说,你的API控制器的方法应该如下所示:public IHttpActionResult Post(CommentModel param)
你的HTTP/POST请求都应该包含一个Content-type: application/json
标头和一个JSON实体作为请求体的一部分(再次,不在URI!!!!)。
最后,如果需要将&号作为资源uri中的数据或url格式编码的数据发送,则需要对它们进行编码,因为&号在此上下文中具有特定的含义(它们是键值对分隔符)。如果你正在执行来自HTML5应用程序的请求,你可以使用encodeURIComponent(...)
函数编码你的参数,而在。net中你可以使用Uri.EscapeDataString
。
POST动词意味着创建资源,并且您将资源数据作为实体发送(它可以是JSON, XML, url形式编码,或其他任何形式,但理想情况下不是作为URI中的查询字符串)。
在发送前对内容进行编码。
M&A is the trend....
编码后如下所示:
M&A is the trend....