一、使用C#调用http API 接口获取数据展示
我这里使用 Visual Studio.Net 编译和执行 C# 程序,版本是Visual Studio2017,步骤如下:
启动Visual Studio2017。在菜单栏上,选择 File文件 -> New新建 -> Project项目,从模板中选择 Visual C#,然后选择 Windows桌面。在右边选择 Console Application即控制台应用。在下方为项目定一个名称,并可以选择程序存放位置。其它默认,然后点击 OK 按钮。
PS:什么是控制台程序?控制台程序就是运行在dos窗口,没有可视化的界面。可以通过Dos窗口进入输入和输出显示。
创建项目完成后,新项目会出现在解决方案资源管理器(Solution Explorer)中。左边会出现代码编辑器,并有初步框架代码,如下:
using System; //Using 关键字, System命名空间!
namespace HelloWorldApplication //namespace声明命名空间,包含一个helloworld的类!
{
/* 类名为 HelloWorld */
class HelloWorld
{
/* main函数 */
static void Main(string[] args)//main函数是C#的接入口!
{
/* 我的第一个 C# 程序 */
Console.WriteLine("Hello World!");//这个一句输出语句!
Console.ReadKey();//这个语句为了防止输出窗口一跳而过!
}
}
}
接下来就是开始在代码编辑器(Code Editor)中编写代码了。我这里使用的命令空间TestApplication,在其下的class中的main方法里编写。注意需要使用Using引入相关的包。代码如下:
Using System;
Using System.Net.Http;
Using System.Net;
Using System.Text;
Using System.IO;
namespace TestApplication
{
class testHttp
{
private static HttpClient client = null;
static void Main(string[] args)
{
Console.WriteLine();
string URL = "http://www.baidu.com";
string data = "{\"unid\":\"1C29E1D\",\"data\":[{\"name\":\"level\",\"value\":\"1\"}]}";
string strEncoding = "";
Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "post";
request.ContentType = "application/json";
bytes[] buffer = encoding.GetBytes(data);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse);
Console.WriteLine("http status:");
Console.WriteLine(response.StatusCode)
Console.WriteLine(response);
StreamReader reader = new StreamReader(response.GetResponseStream());
string result = reader.ReadToEnd();
Console.WriteLine("result:");
Console.WriteLine(result);
}
}
}
点击 Run 按钮或者按下 F5 键来运行程序。会出现一个命令提示符窗口(Command Prompt window),运行后显示调用HTTP请求后获取到的数据。
这样一个c#程序,使用C#调用HTTP接口拿到数据的程序就开发完成了。
二、.NET、Csharp和ASP.NET的关系和区别
.NET、Csharp、C#和ASP.NET都是和windows相关的技术和工具,ASP.NET之前还有一个ASP技术,已经很老了,目前已经被淘汰就不提了。
1. 关于.NET
.NET是一种用于构建多种应用的免费开源开发平台。切记:.NET是一个平台,一个抽象的平台的概念。在其上可以使用多种语言,比如C#、ASP、VB等开发语言。可以开发Web应用、Web API和微服务、移动应用、桌面应用、Windows服务等。可以认为是一个可以开发全平台应用的万能平台。.NET平台的核心是.NET Framework,它包括两个关键:一是Common Language Runtime(公共语言运行时),这是.NET应用程序运行时的环境,提供内存管理、代码安全性检测等等功能。另一个是.NET Framework Class Library,.NET框架类库(提供大量应用类库、提高开发效率)。.NET就像java开发中的Java虚拟机。
2. 关于C#和Csharp
C#就是Csharp,它是一个程序设计语言,注意是一门开发语言,和JAVA/PYTHON/PHP概念类似。因为#也读作sharp,sharp即锐利、强大的意思。c#是微软.net framework的主要语言,可以用在网站,桌面应用等方面。微软将这门语言开发成全部面向对象(实际是实习JAVA),取消了面向过程,再起名字的时候,因为C/C++在先,就起名字为“C++++”,即4个加号,为了简单,就写成了“C#”,而#就是4个加号。C#在.NET 平台上运行也是如鱼得水,两者合作非常完。
3. 关于 ASP.NET
ASP.NET是一个网站开发的技术,仅仅是.NET框架中的一个应用模型。用微软公司ASP.NET快速入门中的一句话来解释,ASP.NET是用于生成基于Web的应用程序的内容丰富的编程框架。编写asp.net通常包括两部分的代码:网页层和后台处理层.网页就是用标记语言来写的,而网页对应的后台处理程序则需要.net语言来完成,目前主要是采用c#和vb.net。可以说整个的asp.net网站通过c#或者vb.net来实现。
.NET 程序员一般都以 C# 语言为主,.NET开发就你认为是使用C#开发就行。C#的语法相对C和C++要多一些,但C#相对来说语法都比较固定,使用起来却都很容易。看知乎上有一个将.NET和java相关概念对比的说法,挺好:net的一开始都是按java的概念迁移来对比的,jvm对应clr,Java SE Runtime Environment(JRE)对应 .net framework, jdk对应.net framework sdk,java对应C#,clr和jvm一样,上面可以有很多种语言。
在java平台上可以开发web,服务,界面程序,安卓,C#也可以开发web,服务,界面exe程序,手机app。spring里面东西好像比较多,.net有移植的spring.net,但是更应该对应asp.net mvc + unity啥的。java体系跨平台,C#体系一开始用mono现在由微软主导的 .net core 跨平台。java一般用JetBrains开发,现在流行使用IDEA,C#一直是用VS开发为主。