前言

在很多业务场景中经常会遇到调用web api接口,并且把参数传递给web api,下面将一起了解一下如何在.net core中调用web api,并且将json字符串传递给post方法

环境和组件

环境:.net core

组件:RestSharp(可以通过NuGget组件包添加到项目组)

具体实现

1、web api方法

//注意:.net core web api支持dynamic,实例中是将请求过来的json字符串转换为了list
[HttpPost("SyncNews")]
        public async void SyncNews([FromBody] List<Article> data)
        {
            
            try
            {
                //此处是调用entity framework把数据插入到数据库
                var articleRepository = new ArticleRepository();
                await articleRepository.SyncDataAsync(data);
               
                
            }
            catch (Exception ex)
            {
                
                //此处写log日志等
            }
            
        }


//业务方法
public async Task SyncDataAsync(List<Article> articles)
        {
            using (var db = new PortalManagementContext())
            {

                foreach (var item in articles)
                {
                    db.Articles.Add(item);
                }

                await db.SaveChangesAsync();
            }
        }

 2、调用web api(Post)

下面是调用web api的两种方式

.net core请求:

//articles为Article集合
 List<Article> newaddArticleList = articles;
            var ArticleServiceUrl = RandUXML.Read("ArticleServiceUrl");
            var clientsharp = new RestClient(ArticleServiceUrl+"api/Article/SyncNews");
            clientsharp.Timeout = -1;
            var request = new RestRequest(Method.POST);
            request.AddHeader("Content-Type", "application/json");
            //将list集合转换为json字符串,并传递给web api
            string ListJson = JsonConvert.SerializeObject(articles);
            request.AddParameter("application/json", ListJson, ParameterType.RequestBody);
            IRestResponse response = clientsharp.Execute(request);
            Console.WriteLine(response.Content);


Ajax请求:

var settings = {
  "url": weburl+"/api/Article/SyncNews",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json"
  },
  "data": JSON.stringify("json字符串"),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

3、调用web api(Get)

下面是.net core及JQuery调用web api方法

.Net Core:
var client = new RestClient(weburl+"/api/Article/GetAllArticles");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

JQuery:
var settings = {
  "url": weburl+"/api/Article/GetAllArticles",
  "method": "GET",
  "timeout": 0,
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

如上就是.net core调用web api的方法,如上描述如有错漏请大家评论区直接留言,多谢

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐