加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET Web Api – 将对象发布到自定义动作控制

发布时间:2020-12-15 20:56:53 所属栏目:asp.Net 来源:网络整理
导读:我有下一个ApiController public class ValuesController : ApiController{ // GET /api/values public IEnumerablestring Get() { return new string[] { "value1","value2" }; } public User CreateUser(User user) { user.Id = 1000; return user; }} 与
我有下一个ApiController
public class ValuesController : ApiController
{
    // GET /api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1","value2" };
    }

    public User CreateUser(User user)
    {
        user.Id = 1000;
        return user;
    }
}

与下一个路线

routes.MapHttpRoute(
    name: "DefaultApi",routeTemplate: "api/{controller}/{action}/{id}",defaults: new { id = RouteParameter.Optional });

我想要使??用这项服务.我可以使用第一种方法:

var client = new WebClient();
    var result = client.DownloadString(@"http://localhost:61872/api/values/get");

但我不能消耗第二种方法.当我做下一个:

var user = new User() { Name = "user1",Password = "pass1" };
    var json = Newtonsoft.Json.JsonConvert.SerializeObject(user);
    result = client.UploadString(@"http://localhost:61872/api/values/createuser",json);

我没有附加信息就抓住了下一个例外

The remote server returned an error: (500) Internal Server Error.

我有两个问题:

>将自定义对象设置为服务方法参数的正确方法是什么?
>我怎样才能获得有关“魔术”异常的附加信息?

解决方法

如果您打算发送JSON请求,请确保已正确设置Content-Type请求标头,否则服务器不知道如何编码请求以及Api控制器操作所采用的用户参数为null:
using (var client = new WebClient())
{
    client.Headers[HttpRequestHeader.ContentType] = "application/json";
    var user = new User() { Name = "user1",Password = "pass1" };
    var json = Newtonsoft.Json.JsonConvert.SerializeObject(user);
    var result = client.UploadString(@"http://localhost:61872/api/values/createuser",json);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读