C#学习教程:将C#对象发送到webapi控制器分享


将C#对象发送到webapi控制器

我正在尝试将C#对象传递给web api控制器。 api配置为存储发布到它的Product类型的对象。 我已经使用Jquery Ajax方法成功添加了对象,现在我试图在C#中获得相同的结果。

我创建了一个简单的控制台应用程序来向api发送Post请求:

public class Product { public int Id { get; set; } public string Name { get; set; } public string Category { get; set; } public decimal Price { get; set; } } static void Main(string[] args) { string apiUrl = @"http://localhost:3393/api/products"; var client = new HttpClient(); client.PostAsJsonAsync(apiUrl, new Product() { Id = 2, Name = "Jeans", Price = 200, Category = "Clothing" }); } 

永远不会调用postproduct方法,如何将此对象发送到控制器?

用于添加项目的方法:

  public HttpResponseMessage PostProduct([FromBody]Product item) { item = repository.Add(item); var response = Request.CreateResponse(HttpStatusCode.Created, item); string uri = Url.Link("DefaultApi", new { id = item.Id }); response.Headers.Location = new Uri(uri); return response; } 

看起来你已经以某种方式禁止接受JSON作为发布格式。 我能够使用application/x-www-form-urlencoded将数据发送到您的终端并创建新产品。 这可能就是你的jQuery请求是如何做到的。

你能展示你的web api的配置代码吗? 您是否更改了默认格式化程序?

或者您可以从HttpClient发送表单。 例如

上述就是C#学习教程:将C#对象发送到webapi控制器分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

  string apiUrl = "http://producttestapi.azurewebsites.net/api/products"; var client = new HttpClient(); var values = new Dictionary() { {"Id", "6"}, {"Name", "Skis"}, {"Price", "100"}, {"Category", "Sports"} }; var content = new FormUrlEncodedContent(values); var response = await client.PostAsync(apiUrl, content); response.EnsureSuccessStatusCode(); 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1269707.html

(0)
上一篇 1天前
下一篇 1天前

精彩推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注