一、创建项目

新建api项目:

建好之后,一个默认的控制器已经有了:

运行就可以直接访问get接口获取数据:

二、跨平台部署

部署方面,微软已经完善的很好了,基本上算是傻瓜式操作。项目右键选择发布:

部署模式可以采用框架依赖,或独立,选择框架依赖,则需要在目标平台安装netcore运行时后才能运行netcore程序。

平台可以选择windows或linux:

发布完成后,直接运行“dotnet *.dll”即可将api服务建立起来,默认建立http的5000端口和https的5001端口,可直接访问。

三、客户端访问代码

  1. /// <summary>
  2.  
  3. /// post函数
  4.  
  5. /// </summary>
  6.  
  7. /// <param name="url">服务器post地址</param>
  8.  
  9. /// <param name="args">api参数</param>
  10.  
  11. async void PostData(string url, string[] args)
  12.  
  13. {
  14.  
  15. var httpClient = new HttpClient();
  16.  
  17. //Post数据序列化
  18.  
  19. var json = Newtonsoft.Json.JsonConvert.SerializeObject(args);
  20.  
  21. var stringContent = new StringContent(json);
  22.  
  23. stringContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
  24.  
  25. //设定安全协议,不然访问默认的netcore地址会报错:基础流已关闭
  26.  
  27. ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;
  28.  
  29. var response = await httpClient.PostAsync(url, stringContent);
  30.  
  31. var str = await response.Content.ReadAsStringAsync();
  32.  
  33. Console.WriteLine("post:" + str);
  34.  
  35. }

四、遇到的问题与解决

  在本机用localhost,127.0.0.1等地址访问都没问题,当想测试linux环境,在centos虚拟机里服务运行后,在本机就是无法访问,但是在虚拟机内部又是没问题的。通过搜索引擎查询并解决,下面是问题与解决方法,排名不分先后。

1.运行报错Couldn't find a valid ICU package installed on the system.

 安装icu库,运行命令:yum install icu

2.防火墙问题

(1) 查看状态:firewall-cmd --state

(2) 关闭防火墙:systemctl stop firewalld

3.外部无法访问

 默认的localhost只能本地访问,需要在代码中指定:WebHost.CreateDefaultBuilder(arg).UseUrls("http://*:5000") .UseStartup<Startup>();

 或在部署是直接指定:dotnet *.dll --urls http://*:5000

4.连接sqlserver2008R2服务器超时

 Netcore在linux下如果SqlServer2008低于SP3版本,会出现连接超时的问题。只要去官方下载SqlServer 2008 Sp3 补丁安装即可。

 https://www.cnblogs.com/weiweithe/p/7810803.html

五、卷尾

Netcoreapi提供了一个新的解决方案,方便用户采用同一套代码构建跨平台程序,大大减少了开发工作量。微软正在准备NetCore3.0的发布,面向图形化界面的开发,发布后netcore的应用面应该会更广。

学海无涯,共同进步。

NetCore WebAPI开发探索的更多相关文章

  1. .NetCore WebApi——Swagger简单配置

    在前后端分离的大环境下,API接口文档成为了前后端交流的一个重点.Swagger让开发人员摆脱了写接口文档的痛苦. 官方网址:https://swagger.io/ 在.Net Core WebApi ...

  2. ASP.NET Core WebAPI 开发-新建WebAPI项目

    ASP.NET Core WebAPI 开发-新建WebAPI项目, ASP.NET Core 1.0 RC2 即将发布,我们现在来学习一下 ASP.NET Core WebAPI开发. 网上已经有泄 ...

  3. GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]

    Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手  粘贴时有一个版权问题 本文原 ...

  4. Restful WebApi开发实践

    随笔分类 - Restful WebApi开发实践   C#对WebApi数据操作 摘要: ## 目标简化并统一程序获取WebApi对应实体数据的过程,方便对实体进行扩充.原理就是数据服务使用反射发现 ...

  5. netcore webapi帮助文档设置

    如何建 .netcore webapi 项目这个就不说了,这个都没有没必要看下去. 我这里是.netcore 2.0,虽然没测过1.0的,但想来差不多. 1.Nuget Packages安装,使用程序 ...

  6. Android艺术开发探索第四章——View的工作原理(下)

    Android艺术开发探索第四章--View的工作原理(下) 我们上篇BB了这么多,这篇就多多少少要来点实战了,上篇主席叫我多点自己的理解,那我就多点真诚,少点套路了,老司机,开车吧! 我们这一篇就扯 ...

  7. Android艺术开发探索第三章————View的事件体系(下)

    Android艺术开发探索第三章----View的事件体系(下) 在这里就能学习到很多,主要还是对View的事件分发做一个体系的了解 一.View的事件分发 上篇大致的说了一下View的基础知识和滑动 ...

  8. Android艺术开发探索第三章——View的事件体系(上)

    Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...

  9. Android艺术开发探索——第二章:IPC机制(下)

    Android艺术开发探索--第二章:IPC机制(下) 我们继续来讲IPC机制,在本篇中你将会学习到 ContentProvider Socket Binder连接池 一.使用ContentProvi ...

随机推荐

  1. 《Dotnet9》系列-开源C# Winform控件库强力推荐

    时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...

  2. 开源WAF工具ModSecurity

    0 前言 ModSecurity是一个开源的跨平台Web应用程序防火墙(WAF)引擎,用于Apache,IIS和Nginx,由Trustwave的SpiderLabs开发.作为WAF产品,ModSec ...

  3. 二、计算机数据表示&&校验码(简单了解)

    一.数据表示 机器数:各种数值在计算机中的表示形式.其特点是采用二进制计数器,数的符号用0和1标识,小数点则隐含,表示不占位置.机器数分为带符号数和无符号数.无符号数称为正数. 比如,十进制中的数 + ...

  4. 百度大脑UNIT3.0解读之对话式文档问答——上传文档获取对话能力

    在日常生活中,用户会经常碰到很多复杂的规章制度.规则条款.比如:乘坐飞机时,能不能带宠物上飞机,3岁小朋友是否需要买票等.在工作中,也会面对公司多样的规定制度和报销政策.比如:商业保险理赔需要什么材料 ...

  5. MySQL Event历史记录

    需求 SQL Server的作业历史(Job)记录是保存在msdb库中的,很方便就查询相关的Job定义,计划和历史记录,而MySQL的event却没有历史记录.为方便查看event是否正常执行以及执行 ...

  6. 三个月前的评测拖延三个月仍旧是拳王No.1吗?YES!

    距前作展开隐形的翅膀,WPR003N补完篇仿佛已经隔了几个光年,最近替换了2019发现android sdk需要手冻放入一个tools2文件夹来延续Eclipse style的m$ distribut ...

  7. Flask 教程 第十章:邮件支持

    本文翻译自The Flask Mega-Tutorial Part X: Email Support 这是Flask Mega-Tutorial系列的第十部分,在其中我将告诉你,应用如何向你的用户发送 ...

  8. vue 无限滚动问题

    如今web开发中,无限加载是必需的一项功能,尤其是在移动端开发中,一个列表往往默认只加载10条,想看更多只能逐渐往下翻页.那么今天就看看如何在Vue-Cli中实现这个功能. 当前找到两个插件 1 el ...

  9. js-07-事件

    一.js事件绑定在对象上的三种方法 a:将事件绑定在元素标签的属性上 <h3 onclick="console.log('奥特曼打怪兽')">海绵宝宝历险记</h ...

  10. Java学习笔记 -- 头代码

    每次写Java程序都会忘记这个main代码怎么写,特意把他写下来,之后忘了还可以温故而知新. 程序猿们请千万不要鄙视我o(╯□╰)o public static void main(String[] ...