Tag: asp.net web api

如何从HttpActionResult Ok方法(Web Api)获取对象?

我正在学习一些Web Api基础知识,我想返回并通过Ok(object)传递一个对象。 像这样的东西: [HttpGet] public IHttpActionResult Get() { var someString = “”; return Ok(someString); } 现在我想测试这个方法并断言来自这个Get()方法的返回字符串是否与预期的相同。 我猜猜看会是这样的: [TestMethod] public void TestGet() { IHttpActionResult result = controller.Get(); Assert.AreEqual(“”, result.??); } 我看到了这个问题,但最好的答案是解释如何validationHttpStatusCode ,而不是传递的对象。

ASP.NET Web API和OpenID Connect:如何从授权代码获取访问令牌

我尝试让OpenID Connect运行…我的Web API用户设法获得OpenID Connect Provider的授权码。 我应该如何将此代码传递给我的ASP.NET Web API? 我如何配置OWIN中间件,以便我可以使用授权码获取访问令牌? 更新:SPA使用AJAX与我的Web服务(ASP.NET Web API)进行通信。 在我的Web服务中使用OWIN Middleware。 我将OpenIDConnect设置为身份validation机制。 首次调用Web服务时,它成功将用户重定向到OpenID Connect Provider的登录页面。 用户可以登录并获得授权码。 AFAIK此代码现在可以(通过我的Web服务)用于访问令牌。 但是,我不知道如何将此代码返回到我的Web服务(这是使用标头完成吗?)然后配置什么来获取访问令牌。 我想我可以手动调用令牌端点,但我想利用OWIN组件。

WebApi 2 POST使用单个字符串参数而不是wokring

我有以下控制器: public class ValuesController : ApiController { // POST api/values public IHttpActionResult Post(string filterName) { return new JsonResult(filterName, new JsonSerializerSettings(), Encoding.UTF8, this); } } WebApi配置 config.Routes.MapHttpRoute( name: “DefaultApi”, routeTemplate: “api/{controller}/{id}”, defaults: new { id = RouteParameter.Optional }); 我使用这个js代码来调用api $.ajax( { url: “/api/values/”, type: “POST”, dataType: ‘json’, data: { filterName: “Dirty Deeds” }, success: function (result) […]

简单的WEB API REST项目

使用ASP.NET MVC在Visual Studio 2013中创建简单REST API的最佳方法是什么。 我只想要一些带有控制器和路由配置的东西以及HTTP REST API的任何其他基本要求。 我不需要任何Razor视图引擎,Javascript或HTML包含。 如何在没有所有不需要的额外内容的情况下创建项目,我通常会在过去删除它们? 谢谢。

返回带有小写首字母属性名称的json

我有LoginModel: public class LoginModel : IData { public string Email { get; set; } public string Password { get; set; } } 我有Web api方法 public IHttpActionResult Login([FromBody] LoginModel model) { return this.Ok(model); } 它返回200和身体: { Email: “dfdf”, Password: “dsfsdf” } 但是我希望能够获得较低的首字母属性 { email: “dfdf”, password: “dsfsdf” } 我有Json合同解析器进行纠正 public class FirstLowerContractResolver : DefaultContractResolver { protected […]

Web API中的依赖项注入validation

在MVC中,我可以创建一个可以使用依赖关系的模型validation器。 我通常使用FluentValidation。 例如,这允许我检查帐户注册是否未使用电子邮件地址(注意:这是一个简化的示例!): public class RegisterModelValidator : AbstractValidator { private readonly MyContext _context; public RegisterModelValidator(MyContext context) { _context = context; } public override ValidationResult Validate(ValidationContext context) { var result = base.Validate(context); if (context.Accounts.Any(acc => acc.Email == context.InstanceToValidate.Email)){ result.Errors.Add(new ValidationFailure(“Email”, “Email has been used”)); } return result; } } 使用FluentValidation的Web API不存在此类集成。 已经有过几次 尝试 ,但都没有处理dependency injection方面,只能使用静态validation器。 这很困难的原因是由于MVC和Web […]

+(加号)登录Web API路由

我正在使用asp.net web api项目,我必须通过post传递手机号码。 但我不能返回一个加号。 我的路线: config.Routes.MapHttpRoute( name: “SmsRoute”, routeTemplate: “rest/sms/{country}/{company}/phone/{mobilenumber}”, defaults: new { controller = “Sms”, action = “PostSms” }); 控制器: public HttpResponseMessage PostSms(string country, string company, string mobilenumber) { return Request.CreateResponse( HttpStatusCode.Created ); } 当我在fiddler上运行这个post方法时: http://index.html/rest/sms/se/company/phone/46700101010/messages/out 我收到了这个回复: 但我希望它能够向我展示加号。

具有多个参数的Web API路由

我正在尝试找出如何为以下Web API控制器进行路由: public class MyController : ApiController { // POST api/MyController/GetAllRows/userName/tableName [HttpPost] public List GetAllRows(string userName, string tableName) { … } // POST api/MyController/GetRowsOfType/userName/tableName/rowType [HttpPost] public List GetRowsOfType(string userName, string tableName, string rowType) { … } } 目前,我正在使用此路由到URL: routes.MapHttpRoute(“AllRows”, “api/{controller}/{action}/{userName}/{tableName}”, new { userName= UrlParameter.Optional, tableName = UrlParameter.Optional }); routes.MapHttpRoute(“RowsByType”, “api/{controller}/{action}/{userName}/{tableName}/{rowType}”, new { userName= UrlParameter.Optional, tableName […]

无法从web api POST读取正文数据

我正在尝试从新的Asp.Net Web Api中的请求中提取一些数据。 我有这样的处理程序设置: public class MyTestHandler : DelegatingHandler { protected override System.Threading.Tasks.Task SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { if (request.Content.IsFormData()) { request.Content.ReadAsStreamAsync().ContinueWith(x => { var result = “”; using (var sr = new StreamReader(x.Result)) { result = sr.ReadToEnd(); } Console.Write(result); }); } return base.SendAsync(request, cancellationToken); } } 这是我的http请求: POST http://127.0.0.1/test HTTP/1.1 Connection: Keep-Alive Content-Length: 29 […]

如何在asp.net web api中返回json错误消息?

我想返回一个json errormessage但是在fiddler中,我在json面板中看不到这个: string error = “An error just happened”; JsonResult jsonResult = new JsonResult { Data = error, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; response = Request.CreateResponse(HttpStatusCode.BadRequest, jsonResult.Data); 这该怎么做?