aspnetcore和json(asp netcore)

本文目录一览:

vs新建asp.net项目出现问题?

你没明白.netcore的运行方式

首先确定你本机已经安装了dotnetcore sdk

再powershell里运行dotnet –list-sdks可以看出来

然后你再看项目文件夹顶层应该有个global.json啥的,如果没有,那有可能不是正规的项目,编辑里面的版本,为你已经安装的版本,再编译

另外有些三方库一般是通过nuget安装,你打开项目后,项目名右键-nuget还原就可以装相应的库,要联网安装

———-以上是打开现有项目

新建项目就报错的话,很有可能是你没安装相应模块,再打开vs installer 把.net core 和asp.net相关的都勾上

.net mvc发布到iis之后接口总是被调用两次,实在查不到原因了?

控制变量法诊断

新建一个最简单mvc程序,加上log,看会调用两次吗

你的程序调试时候没问题,是发布到iis才调两次?

现在微软主推.netcore,也就是不需要iis,只用命令行也可以运行web程序了,你可以试试这个

从调用API接口 看.net framework和 net core的异同

由于.netcore是跨平台使用的,所有微软重写好多API,由此有些差异也是正常的。现在就来看下请求API的差别吧。首先,原本的.netframework请求方法:复制代码publicstaticTHttpPostWithDecompression(stringrequest,stringurl,inttimeout)whereT:new(){varhttpWebRequest=(HttpWebRequest)WebRequest.Create(url);httpWebRequest.Proxy=null;httpWebRequest.Timeout=timeout;httpWebRequest.Method=”POST”;httpWebRequest.ContentType=”application/json”;httpWebRequest.AutomaticDecompression=DecompressionMethods.Deflate|DecompressionMethods.GZip;varbytes=Encoding.UTF8.GetBytes(request);StreamrequestStream=null;varresponseContent=string.Empty;try{requestStream=httpWebRequest.GetRequestStream();requestStream.Write(bytes,0,bytes.Length);varwebResponse=httpWebRequest.GetResponse();varstream=webResponse.GetResponseStream();if(stream!=null){varstreamReader=newStreamReader(stream);responseContent=streamReader.ReadToEnd();streamReader.Close();}webResponse.Close();returnJsonConvert.DeserializeObject(responseContent);}catch(Exceptionexception){returnnewT();}finally{if(requestStream!=null){requestStream.Close();}}}复制代码第一种返回错误编码的.netcore的写法:复制代码publicasyncstaticTaskHttpPostWithDecompression(stringrequest,stringurl,inttimeout)whereT:new(){varhttpWebRequest=(HttpWebRequest)WebRequest.Create(url);httpWebRequest.Proxy=null;httpWebRequest.ContinueTimeout=timeout;httpWebRequest.Method=”POST”;httpWebRequest.ContentType=”application/json”;httpWebRequest.Headers[“Accept-Encoding”]=”gzip,deflate”;//httpWebRequest.AutomaticDecompression=DecompressionMethods.Deflate|DecompressionMethods.GZip;vardata=Encoding.UTF8.GetBytes(request);using(varrequestStream=awaithttpWebRequest.GetRequestStreamAsync())//释放{requestStream.Write(data,0,data.Length);}stringresult=string.Empty;//响应流using(varresponse=(HttpWebResponse)awaithttpWebRequest.GetResponseAsync()){StreamresponseStream=null;if(response.StatusCode==HttpStatusCode.OK){responseStream=response.GetResponseStream();if(responseStream!=null){varstreamReader=newStreamReader(responseStream,Encoding.UTF8);//获取返回的信息result=streamReader.ReadToEnd();returnJsonConvert.DeserializeObject(result);}}}returnnewT();}复制代码查看下.netcore下的属性和方法:可以明显发现比.netframwork下少了好多。也就是.netcore的请求类型,更趋于向浏览器的请求头靠拢,也就是使用Headers字典(.netframwork下也有,但是同层级也会有一些属性,比如采用压缩)。主要的区别就是响应流采用的是异步的方式,而.netframwork采用同步的方式,必须手动close(),而新的写法,就只能用using了。但是,上述的这个方法,害死人了,请求也成功,就是编码始终调试不对,请求各位大神指点一二。由于水平问题,未能解决上述问题,所以小弟采用.netcore的HttpClientHandler类进行http请求:get方法复制代码//////get请求//////url包含参数publicstaticasyncTaskdoGet(stringurl)whereT:new(){varhandler=newHttpClientHandler(){AutomaticDecompression=DecompressionMethods.GZip};using(varhttp=newHttpClient(handler)){varresponse=awaithttp.GetAsync(url);//确保HTTP成功状态值response.EnsureSuccessStatusCode();stringresponseStr=response.Content.ReadAsStringAsync().Result;returnJsonConvert.DeserializeObject(responseStr);}}复制代码post请求复制代码//////post请求//////url包含参数publicasyncstaticTaskHttpPostWithDecompression(stringrequest,stringapiUrl,inttimeout)whereT:new(){HttpClientHandlerhandler=newHttpClientHandler();handler.Proxy=null;handler.AutomaticDecompression=DecompressionMethods.GZip|DecompressionMethods.Deflate;vardata=Encoding.UTF8.GetBytes(request);using(varhttpClient=newHttpClient(handler)){httpClient.BaseAddress=newUri(apiUrl);httpClient.DefaultRequestHeaders.Accept.Add(newMediaTypeWithQualityHeaderValue(“application/json”));varcont=newStringContent(request);//varcontent=newFormUrlEncodedContent(JsonConvert.DeserializeObject(request));//被上面这个注释掉的代码,这种偷懒转Dic的方式给坑苦了,不能这么用啊!!!varresponse=awaithttpClient.PostAsync(apiUrl,cont);stringresult=response.Content.ReadAsStringAsync().Result;returnJsonConvert.DeserializeObject(result);}}

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口

Visual Studio 2019

.net core 3.0

具体步骤如下图:

此处我们选择API(新手不推荐选择空项目,选择API系统会为我们自动创建WebApi需要的一些配置文件等),Https配置这一项我们暂时不勾选,目前我们不配置Https。

F5运行项目,然后就可以看到微软为我们写好的一个天气预报示例webapi了,这里只有一个Get请求示例,返回值为json格式。

注意: services.AddControllers(); 和 endpoints.MapControllers(); 方法成对出现, 这是.net core3.0中的最新写法

ConfigureServices方法

用来向容器中注册服务,注册好的服务可以在其他地方进行调用.

Configure方法

用来配置中间件管道,即如何响应http请求.

1 右键删除系统默认创建的 WeatherForecastController.cs 和 WeatherForecast.cs

2 新建一个控制器,命名: UserController.cs

问题来了,为啥直接给打开 weatherforecast ,而且还404了,别急,往下看。

(┬_┬)怎么还是404?别急继续往下看

上面增加 action 虽然能达到想要的结果,但是每次新建一个 Controller 都有写个 action 万一要是忘记了又要忙乎半天,有没有一劳永逸的办法呢?

继续往下看:

1.首先去掉Controller里的 Route 和 ApiController

2.修改 Startup.cs ,增加路由模版:

今天就到这里,后期继续完善我们的webapi。

vscode 开发.net core 1.0 怎么玩

环境安装

本文开发的实际环境: win10 x64 VSCode 1.0

下载

.NET Core SDK Installer:

VSCode :

VSCode C#插件:

安装C#插件

上一篇评论区有很多园友出现 OmniSharp server is not running.

出现这个主要原因是没有下载下来 OmniSharp server 部分。

这里大家最好全程挂着代理来安装,保证OmniSharp 完全下载完毕。

如果大家没有代理,我给大家封装了一个 C# 插件 基于OmniSharp 最新版封装。

安装好以后就可以直接使用,不会再出现 OmniSharp server is not running.

重磅推荐:点击下载 (密码:Caon)注意事项:本插件只适用于 windows x64 系统 ,其他系统请下载官方插件。

安装插件:直接用VSCode 打开插件文件就可以安装了。

安装完以后重启,出现如上图所示代表插件安装成功。

创建项目

1.新建文件夹 netcoredemo

2.创建项目 dotnet new

3.新建NuGet.Config

新建一个 NuGet.Config 将下面内容复制进去。

?xml version=”1.0″ encoding=”utf-8″?

configuration

packageSources

clear /

add key=”AspNetCI” value=”” /

add key=”NuGet.org” value=”” /

/packageSources

/configuration

4.使用VSCode 打开 netcoredemo

打开netcoredemo 文件夹,会有一个提升点击Yes 就可以了。

第一次打开项目会发现报一些错误,已经为你自动生成launch.json,以及会让你自动还原相关引用。

这里要在project.json 做一点改动。

“dependencies”: {

“Microsoft.NETCore.App”: {

“type”: “platform”,

“version”: “1.0.0-rc2-*”

}

},

将 Microsoft.NETCore.App version 版本改为 1.0.0-rc2-*

更改以后F1 dotnet restore 重新还原一次引用就可以了。

配置调试

1.调试

点击调试,会发现无法进行调试,断点断不下来。

这里我们需要做一个配置。

打开project.json 文件 在节点: compilationOptions 加入: “debugType”: “portable”

“compilationOptions”: {

“debugType”: “portable”

},

编辑好以后保存,重新打开VSCode 。

再点击调试,发现断点已经可以断下,查看参数等操作都可以正常进行。

2.开发

智能提示提供强大支持。

这样我们就可以开发.NET Core 程序,同时可以使用VSCode 调试 .NET Core 程序。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/276899.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-19 13:20
下一篇 2024-12-19 13:20

相关推荐

  • JSON的MD5

    在Web开发过程中,JSON(JavaScript Object Notation)是最常用的数据格式之一。MD5(Message-Digest Algorithm 5)是一种常用…

    编程 2025-04-29
  • 使用Java将JSON写入HDFS

    本篇文章将从以下几个方面详细阐述Java将JSON写入HDFS的方法: 一、HDFS简介 首先,先来了解一下Hadoop分布式文件系统(HDFS)。HDFS是一个可扩展性高的分布式…

    编程 2025-04-29
  • 如何使用Newtonsoft datatable转Json

    Newtonsoft DataTable 是一个基于.NET的JSON框架,也是一个用于序列化和反序列化JSON的强大工具。 在本文中,我们将学习如何使用Newtonsoft Da…

    编程 2025-04-28
  • JPRC – 轻松创建可读性强的 JSON API

    本文将介绍一个全新的 JSON API 框架 JPRC,通过该框架,您可以轻松创建可读性强的 JSON API,提高您的项目开发效率和代码可维护性。接下来将从以下几个方面对 JPR…

    编程 2025-04-27
  • 使用Python获取JSON并解析

    本文将介绍如何使用Python获取JSON数据并解析相关内容。通过使用Python的第三方库,我们可以轻松地处理JSON数据,包括读取、提取和操作JSON数据。 一、获取JSON数…

    编程 2025-04-27
  • Python存为JSON的方法及实例

    本文将从以下多个方面对Python存为JSON做详细的阐述。 一、JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅…

    编程 2025-04-27
  • 使用Spread 8展示JSON数据

    使用Spread 8可以方便地展示JSON数据,本文将详细介绍如何利用Spread 8展示JSON数据。 一、Spread 8简介 Spread 8是一款强大的电子表格软件,可以方…

    编程 2025-04-27
  • 如何在json转实体类时忽略大小写

    本文将从以下几个方面介绍如何在json转实体类时忽略大小写。 一、使用Gson库实现json转实体类忽略大小写 Gson是Google提供的Java JSON操作库,它提供了简单易…

    编程 2025-04-27
  • C# 中 JSON null 不显示的处理方法

    本文将为大家介绍在 C# 中处理 JSON null 不显示的解决方法。 一、null 不显示的问题 在使用 C# 进行 JSON 数据处理的时候,经常会遇到 null 值不显示的…

    编程 2025-04-27
  • Hive解析JSON详解

    一、JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有结构清晰、易于读写、便于解析等特点。它基于JavaScript的一…

    编程 2025-04-25

发表回复

登录后才能评论