zoukankan      html  css  js  c++  java
  • 使用C#代码调用Web API

    1. POST

    POST的参数需要加上[FromBady],且参数只能一个

    客户端提交数据的时候ContentType 为 application/x-www-form-urlencoded 或者 application/json 并没有什么影响。

    如果数据是简单、平面的key-value键值对,那么使用application/x-www-form-urlencoded简单实用,不需要额外的编解码

    如果数据是复杂的嵌套关系,有多层数据,那么使用application/json会简化数据的处理

    C#客户端代码

      1 var postData = new
      2             {
      3                 day = day.ToString("yyyy-MM-dd")
      4             };
      5             var content = new StringContent(JsonHelper.ConvertToStr(postData));//用的StringContent 之前用的FormUrlEncodedContent
      6             content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
      7             HttpClient myHttpClient = new HttpClient();
      8             myHttpClient.BaseAddress = new Uri("http://localhost:54455");
      9             var response = myHttpClient.PostAsync("API/ProductionCalendar/Create", content).Result;
    View Code

    C#服务端代码

      1 [HttpPost]
      2 
      3 public bool Create([FromBody]JObject parameters)
      4 
      5 {
      6 
      7 dynamic d = parameters;
      8 
      9 DateTime dt;
     10 
     11 if (DateTime.TryParse(d.day.ToString(), out dt) == false)
     12 
     13 throw new Exception($"{d.day} 时间格式不正确!");
     14 
     15 return _calendarDomain.Create(dt);
     16 
     17 }
     18 
    View Code

    说明:使用JObject对应作为参数的类型,再使用动态类型dynamic 获取参数

    clipboard

    PS:如果接口的参数类型为值类型或者string,提交数据时

    附:

    https://www.cnblogs.com/landeanfen/p/5177176.html

  • 相关阅读:
    rman备份,恢复
    异步事件回调机制原理探索 (转)
    stock
    将知识变成你的技能点
    Tomcat的URL中文乱码解决以及传输优化
    李洪强iOS开发之-入门指南
    WebSocket 和 Socket 的区别
    李洪强iOS开发之-修改状态栏的字体的颜色
    关于UDID和UUID的区别
    李洪强iOS开发之
  • 原文地址:https://www.cnblogs.com/smallidea/p/11995852.html
Copyright © 2011-2022 走看看