NetCore WebAPI开发探索
一、创建项目
新建api项目:
建好之后,一个默认的控制器已经有了:
运行就可以直接访问get接口获取数据:
二、跨平台部署
部署方面,微软已经完善的很好了,基本上算是傻瓜式操作。项目右键选择发布:
部署模式可以采用框架依赖,或独立,选择框架依赖,则需要在目标平台安装netcore运行时后才能运行netcore程序。
平台可以选择windows或linux:
发布完成后,直接运行“dotnet *.dll”即可将api服务建立起来,默认建立http的5000端口和https的5001端口,可直接访问。
三、客户端访问代码
/// <summary> /// post函数 /// </summary> /// <param name="url">服务器post地址</param> /// <param name="args">api参数</param> async void postdata(string url, string[] args) { var httpclient = new httpclient(); //post数据序列化 var json = newtonsoft.json.jsonconvert.serializeobject(args); var stringcontent = new stringcontent(json); stringcontent.headers.contenttype = new mediatypeheadervalue("application/json"); //设定安全协议,不然访问默认的netcore地址会报错:基础流已关闭 servicepointmanager.securityprotocol = securityprotocoltype.tls11; var response = await httpclient.postasync(url, stringcontent); var str = await response.content.readasstringasync(); console.writeline("post:" + str); }
四、遇到的问题与解决
在本机用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 补丁安装即可。
五、卷尾
netcoreapi提供了一个新的解决方案,方便用户采用同一套代码构建跨平台程序,大大减少了开发工作量。微软正在准备netcore3.0的发布,面向图形化界面的开发,发布后netcore的应用面应该会更广。
学海无涯,共同进步。
上一篇: 5G进入“冲刺”阶段垂直行业迎来新机遇
下一篇: 数字支付:B端异军突起,C端流量让位
推荐阅读
-
.netCore+Vue 搭建的简捷开发框架 (4)--NetCore 基础 -2
-
详解.net core webapi 前后端开发分离后的配置和部署
-
循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi
-
Windows Phone 7 开发探索笔记5——页面间导航
-
C#_.NetCore_WebAPI项目_EXCEL数据导出(ExcelHelper_第二版_优化逻辑)
-
.netCore+Vue 搭建的简捷开发框架
-
基于NetCore+SqlSugar+Layui开发出来的开源框架项目FytSoaCms问题处理
-
.Net TCP探索(一)——TCP服务端开发(同时监听多个客户端请求)
-
Android 开发艺术探索之Window和WindowManager解析
-
【Android开发艺术探索】四大组件的工作过程