博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NetCore WebAPI开发探索
阅读量:4320 次
发布时间:2019-06-06

本文共 1622 字,大约阅读时间需要 5 分钟。

 

一、创建项目

新建api项目:

 

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

 

 

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

 

 

二、跨平台部署

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

 

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

 

平台可以选择windowslinux

 

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

 

 

三、客户端访问代码

/// /// post函数/// /// 服务器post地址/// api参数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);}

 

四、遇到的问题与解决

  在本机用localhost127.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服务器超时

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

 

 

五、卷尾

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

学海无涯,共同进步。

转载于:https://www.cnblogs.com/zhanglb163/p/11047054.html

你可能感兴趣的文章
vim 简单理解三种模式 粗暴入门
查看>>
django模板层之静态文件引入优化
查看>>
转载使用命令wsimport构建WebService客户端
查看>>
java实现23种设计模式之模版方法模式
查看>>
小程序·云开发实战 - 校园约拍小程序
查看>>
闲话函数式变成与OOP
查看>>
Linux-正则表达式与三剑客
查看>>
php中,post与get获取参数的异同
查看>>
警惕!年轻人要拥抱自动化和人工智能作为通信的未来
查看>>
Python给数字前固定位数加零
查看>>
python 多进程和多线程对比
查看>>
【转载】 wpf无边框的方法以及拖拽的问题
查看>>
Web自动化测试 二 ----- HTML
查看>>
sql 入门经典(第五版) Ryan Stephens 学习笔记  第四部分:建立复杂的数据库查询/...
查看>>
[原创]Keys的基本操作总结,判断Keys中是否存在Keys.Control|Keys.Alt,移除Keys中的部分键值。...
查看>>
主题样式之背景图片不随鼠标滑动而移动
查看>>
Centos 中文乱码
查看>>
IDLE常用快捷键
查看>>
MyBatis课程4
查看>>
Git使用笔记
查看>>