VS2019之WebAPI的创建与调用方法

2023-11-12

一、使用VS2019创建WebAPI
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用ValuesController.cs来编写WebAPI的方法(重要)

WebApiConfig.cs的配置代码:注意访问方式,WebApi在访问时在主机名后加/api/,然后再加控件器、方法、参数,如:https://localhost:44325/api/values/Demo (post请求方式)
https://localhost:44325/api/values/wxs?name=张三 (get请求方式)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using System.Web.Http.Cors;



namespace WebApplication1
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {

           
          
            // Web API 路由
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{Action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            //跨域配置
            config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
        }
    }
}

RouteConfig.cs代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace WebApplication1
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}

A、ValueController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    
    public class ValuesController : ApiController
    {
        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/values
        public void Post([FromBody] string value)
        {
           
        }

        // PUT api/values/5
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
        }

        [HttpPost]
        public string Demo([System.Web.Http.FromBody] Contact name)
        {
            string nn = name.Name;
            string result = string.Empty;
            result = "您的参数是:" + nn;
            return result;
        }
       
        [HttpGet]
        public string wxs(string name)
        {
            string result = string.Empty;
            result = "{Name:\"" + name + "\"}";
            return result;
        }

    }
}

二、get请求方式:
https://localhost:44325/api/Values/wxs?name=张三
三、post请求方式:使用Http模拟请求工具,如图填写内容:请求URL、Post数据在这里插入图片描述

四、跨域配置:在WebCongfig.cs中<system.webServer>节中配置

<!--跨域配置-->
  <httpProtocol>
		  <customHeaders>
			  <!--响应类型 (值为逗号分隔的一个字符串,表明服务器支持的所有跨域请求的方法)-->
			  <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS"/>
			  <!--响应头设置(Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)-->
			  <add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/>
			  <!--如果设置 Access-Control-Allow-Origin:*,则允许所有域名的脚本访问该资源-->
			  <add name="Access-Control-Allow-Origin" value="*" />
			  <!--<add name="Access-Control-Allow-Origin" value="http://xxxxxxx1.com, http://xxxxxxx2.com" />  设置允许跨域访问的网址,如:localhost:44352-->
		  </customHeaders>
	  </httpProtocol>

五、Application_Start()中配置跨域的方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace WebApplication1
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
                  GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            WebApiConfig.Register(GlobalConfiguration.Configuration);//重要,在WebApi项目中App
           
        }
        /// <summary>
        /// 跨域设置
        /// </summary>
        protected void Application_BeginRequest()
        {
            //OPTIONS请求方法的主要作用:
            //1、获取服务器支持的HTTP请求方法;也是黑客经常使用的方法。
            //2、用来检查服务器的性能。如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全。
            if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
            {
                //表示对输出的内容进行缓冲,执行page.Response.Flush()时,会等所有内容缓冲完毕,将内容发送到客户端。
                //这样就不会出错,造成页面卡死状态,让用户无限制的等下去
                Response.Flush();
            }
        }
    }
}

秋风写淄博 业务联系与技术交流:QQ375172665

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS2019之WebAPI的创建与调用方法 的相关文章

随机推荐

  • (G)ZS-CMR数据划分

    G ZS CMR 即 广义 零样本跨模态检索 设置类比 广义 零样本学习 G ZSL 这里记录两种划分 不限 CMR 也可以是 image retrieval ZS CMR 参考 1 类比 ZSL 整个数据集先从 class 角度分 see
  • 【java基础】java关键字总结及详解

    Java关键字是电脑语言里事先定义的 有特别意义的标识符 有时又叫保留字 还有特别意义的变量 Java的关键字对Java的编译器有特殊的意义 他们用来表示一种数据类型 或者表示程序的结构等 关键字不能用作变量名 方法名 类名 包名和参数 一
  • “应用程序配置不正确,应用程序未能启动” 错误的解决

    转载自 http hi baidu com xunxun129 blog item 6b311ccf24f4900992457e87 html 一 问题描述 今天在虚拟机上装了XP系统 但运行一个win32 Console程序时弹出对话框
  • 【第八章 IDEA中常用快捷键】

    第八章 IDEA中常用快捷键 1 Ctrl Y 删除光标所在行的所有内容 Ctrl X也可以 2 Ctrl D 快速向下复制当前行的内容 3 Ctrl W 递进式选中代码 可以先选中光标所在的一部分代码 连续按这个快捷键会在原来的基础上继续
  • 3dsmax子菜单无法选择_超全!!3ds Max重要的快捷键指令都在这里!画图速度提高一倍...

    室内设计胶囊 每个人都在努力的学习 感觉自己有一段时间没有练习了 只是偶尔工作的时候用用 大家都在努力 那我也出一点点力量吧 有同学说3ds Max 里面的快捷键实在太多了 全部记住有些吃力 能不能整理一份重要的 常用的快捷键 这样在记忆的
  • 史上最全 Vue 前端代码风格指南

    这篇文章是在公众号JS每日一题里抄过来的 觉得有用 收藏在这里 一 命名规范 市面上常用的命名规范 camelCase 小驼峰式命名法 首字母小写 PascalCase 大驼峰式命名法 首字母大写 kebab case 短横线连接式 Sna
  • Vue3 详细教程

    文章目录 一 API 风格 1 1 选项式 API 1 2 组合式 API 二 Vue 指令 2 1 文本插值 2 2 v html 标签元素 2 3 v on 绑定事件 2 4 v show 隐藏元素 2 5 v if 消除元素 2 6
  • Error:JAVA_HOME is not set and could not be found

    解决办法 打开hadoop etc hadoop目录下的文件hadoop env sh 将语句 export JAVA HOME JAVA HOME 修改为 export JAVA HOME 你的java路径 比如我是将其修改为 expor
  • Apache服务

    Apache服务 apache与nginx服务的区别 什么是服务 服务是具备处理客户端请求能力的程序 网站服务就是可以处理http请求并回复响应报文及数据 apache相关文件 主配置文件 etc httpd conf httpd conf
  • HEIF & HEVC 你知道多少?

    点击上方 iOS开发 选择 置顶公众号 关键时刻 第一时间送达 在升级 iOS 11 之后 iPhone 7 及更新的设备内的照片存储将不再用 JPEG 了 而采用了一种新的图片格式 HEIF 发音同 heef 在 iOS 中对应的文件后缀
  • 百度站长HTML添加301错误,搜索资源平台(百度站长)添加网站 使用文件验证 验证失败,原因:未知原因:301的解决办法...

    搜索资源平台 百度站长 添加网站 使用文件验证 验证失败 原因 未知原因 301的解决办法 之前使用过百度站长后台添加新的网站时 从没遇到过问题 一般都是选择第一种验证方式 文件验证 文件验证应该是很简单的事 直接注册账号进行登录 再把文件
  • Unity游戏基本框架

    个人总结笔记 参考自B站各教程 希望对他人也有所帮助 对我自己也方便复习 感谢唐老狮的教学 目录 文件夹管理 单例模式基类 单例模式介绍 Unity中的单例模式 C 中泛型的知识 继承MonoBehaviour的单例基类模式 缓存池模块 常
  • java基础

    Java基础 Java基础特性 与cmd的交互 1 1 什么是cmd 就是在windows操作系统中 利用命令行的方式去操作计算机 我们可以利用cmd命令去操作计算机 比如 打开文件 打开文件夹 创建文件夹等 1 2 如何打开CMD窗口 按
  • 【路由篇】01. 电脑远程访问小米路由器硬盘文件

    简介 自带硬盘的小米路由器可以保存照片 视频等文件 通过手机的小米路由器APP可以远程查看 非常方便 但是美中不足的是电脑无法远程访问小米路由器的文件 这就让小米路由器硬盘的功能大打折扣了 如果电脑可以远程访问小米路由器硬盘的话 当我们在外
  • 遍历一个HashMap

    可以通过2种方法遍历HashMap Map map new HashMap for Iterator iter map entrySet iterator iter hasNext Map Entry entry Map Entry ite
  • Centos 6.5、7升级安装openssh8.2p1

    因centos7自带的ssh版本较低 存在高危漏洞 故升级到最新版本 目前是8 2p1 注意 升级ssh存在一定的危险性 一旦不成功可能无法通过远程连接到系统 因此在升级之前最好先安装vnc或者telnet等远程服务 1 准备工作 查看下当
  • Qt开发 入门

    1 Qt概述 什么是Qt 不论我们学习什么样的知识点首先第一步都需要搞明白它是什么 这样才能明确当前学习的方向是否正确 下面给大家介绍一下什么是Qt Qt是一个跨平台的C 应用程序开发框架 具有短平快的优秀特质 投资少 周期短 见效快 效益
  • 等待一秒lua

    等待1秒 threadpool wait 1 等待1秒 threadpool wait 1 lua 等待1秒 threadpool wait 1
  • 嵌入式学习之STM32实现OLED

    嵌入式学习之STM32实现OLED 一 实验要求 二 SPI介绍 三 OLED介绍 四 实验过程 1 代码编写 实验结果演示 一 实验要求 理解OLED屏显和汉字点阵编码原理 使用STM32F103的SPI或IIC接口实现以下功能 显示自己
  • VS2019之WebAPI的创建与调用方法

    一 使用VS2019创建WebAPI 使用ValuesController cs来编写WebAPI的方法 重要 WebApiConfig cs的配置代码 注意访问方式 WebApi在访问时在主机名后加 api 然后再加控件器 方法 参数 如