• <sub id="xcyjv"></sub><nav id="xcyjv"><code id="xcyjv"><meter id="xcyjv"></meter></code></nav>
      <nav id="xcyjv"></nav>
    1. <form id="xcyjv"><th id="xcyjv"></th></form><nav id="xcyjv"><mark id="xcyjv"></mark></nav>

        .Net Core WebApi的簡單創建以及使用方法

         更新時間:2019年09月11日 09:37:10   作者:風雨流逝   我要評論
        這篇文章主要給大家介紹了關于.Net Core WebApi的簡單創建以及使用方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用.Net Core WebApi具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

        前言

        按照目前的軟件開發發展趨勢中,不管是前后端分離還是提供數據服務,WebApi使用的越來越廣泛,而且.NET Core也是我們.NET開發人員未來發展的趨勢,所以說學會使用.NET Core Api是非常有必要的。

        本人作為一個.NET菜鳥,正在慢慢的學習中,將學到的一步一步記錄下來。

        一、創建項目

        打開VS2019,新建一個ASP.NET Core Web 應用程序。

        輸入項目名、選擇路徑創建。

        選擇.NET Core 我這里用的是.NET Core 2.2版本,選中API,把右邊的選中取消。

        創建的項目目錄內容如下。

        二、編輯控制器

        打開Controllers文件夾,這里我直接使用默認創建的ValuesController控制器。(其實是因為這是個例子我懶的再建了( ̄. ̄))

        ValuesController控制器默認內容如下。共有四個HTTP方法,分別為 Get、Post、Put 和 Delete。

        把該控制器的內容重新寫一下,將路由設置為api/控制器/方法(api/[controller]/[action])。按照常用Get 和 Post兩個請求,寫了兩個Get方法和一個Post方法,一個參數類。

        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Threading.Tasks;
        using Microsoft.AspNetCore.Mvc;
        
        namespace FirstApi.Controllers
        {
          //路由設置
          [Route("api/[controller]/[action]")]
          [ApiController]
          public class ValuesController : ControllerBase
          {
            /// <summary>
            /// 獲取文本
            /// </summary>
            /// <returns></returns>
            [HttpGet]
            public ActionResult<string> Get()
            {
              return "Hello World!";
            }
            /// <summary>
            /// 兩數相加
            /// </summary>
            /// <param name="num1">第一個數</param>
            /// <param name="num2">第二個數</param>
            /// <returns></returns>
            [HttpGet]
            public ActionResult<int> Sum(int num1,int num2)
            {
              return num1 + num2;
            }
            /// <summary>
            /// 兩數相減
            /// </summary>
            /// <param name="param">參數</param>
            /// <returns></returns>
            [HttpPost]
            public ActionResult<int> Subtract(Param param)
            {
              int result = param.num1 - param.num2;
              return result;
            }
          }
          /// <summary>
          /// 參數
          /// </summary>
          public class Param
          {
            /// <summary>
            /// 第一個數
            /// </summary>
            public int num1 { get; set; }
            /// <summary>
            /// 第二個數
            /// </summary>
            public int num2 { get; set; }
          }
        }

        然后右鍵項目→屬性→調試,將啟動瀏覽器默認指向為第一個Get方法。

        調試運行,訪問第一個方法,返回結果。

        訪問第二個方法加上參數,得到結果。

        第三個方法是Post請求,無法直接輸入,可以用其他方式實現。

        三、搭建Swagger

        這樣WebApi 就簡單實現了,不過這樣不容易管理。為了更好的管理和測試我們的接口,我這里使用了Swagger框架。

        Swagger是什么?Swagger 是一個規范和完整的框架,用于生成、描述、調用和可視化RESTful風格的 Web 服務。

        右鍵項目,點擊管理NuGet程序包。

        切換到瀏覽,搜索“Swashbuckle.AspNetCore”,安裝。

        安裝完成之后,編輯Startup.cs文件。

        引用下面三個命名空間。

        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Threading.Tasks;
        using Microsoft.AspNetCore.Mvc;
        
        namespace FirstApi.Controllers
        {
          //路由設置
          [Route("api/[controller]/[action]")]
          [ApiController]
          public class ValuesController : ControllerBase
          {
            /// <summary>
            /// 獲取文本
            /// </summary>
            /// <returns></returns>
            [HttpGet]
            public ActionResult<string> Get()
            {
              return "Hello World!";
            }
            /// <summary>
            /// 兩數相加
            /// </summary>
            /// <param name="num1">第一個數</param>
            /// <param name="num2">第二個數</param>
            /// <returns></returns>
            [HttpGet]
            public ActionResult<int> Sum(int num1,int num2)
            {
              return num1 + num2;
            }
            /// <summary>
            /// 兩數相減
            /// </summary>
            /// <param name="param">參數</param>
            /// <returns></returns>
            [HttpPost]
            public ActionResult<int> Subtract(Param param)
            {
              int result = param.num1 - param.num2;
              return result;
            }
          }
          /// <summary>
          /// 參數
          /// </summary>
          public class Param
          {
            /// <summary>
            /// 第一個數
            /// </summary>
            public int num1 { get; set; }
            /// <summary>
            /// 第二個數
            /// </summary>
            public int num2 { get; set; }
          }
        }

        在ConfigureServices方法里加入下面的代碼,注冊Swagger生成器,定義一個文檔,設置xml文檔的注釋路徑,。

        //配置Swagger
        //注冊Swagger生成器,定義一個Swagger 文檔
        services.AddSwaggerGen(c =>
        {
          c.SwaggerDoc("v1", new Info
          {
            Version = "v1",
            Title = "接口文檔",
            Description = "RESTful API"
          });
          // 為 Swagger 設置xml文檔注釋路徑
          var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
          var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
          c.IncludeXmlComments(xmlPath);
        });

        在Configure方法里加入下面的代碼,啟用中間件服務使用生成Swagger和SwaggerUI,將SwaggerUI中的RoutePrefix設為空字符串,這樣就能在根節點(http://localhost:port)直接顯示SwaggerUI界面。

        //啟用中間件服務生成Swagger
        app.UseSwagger();
        //啟用中間件服務生成SwaggerUI,指定Swagger JSON終結點
        app.UseSwaggerUI(c =>
        {
          c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1");
          c.RoutePrefix = string.Empty;//設置根節點訪問
        });

        編輯后Startup.cs完整代碼如下。

        using System;
        using System.Collections.Generic;
        using System.IO;
        using System.Linq;
        using System.Reflection;
        using System.Threading.Tasks;
        using Microsoft.AspNetCore.Builder;
        using Microsoft.AspNetCore.Hosting;
        using Microsoft.AspNetCore.Mvc;
        using Microsoft.Extensions.Configuration;
        using Microsoft.Extensions.DependencyInjection;
        using Microsoft.Extensions.Logging;
        using Microsoft.Extensions.Options;
        using Swashbuckle.AspNetCore.Swagger;
        
        namespace FirstApi
        {
          public class Startup
          {
            public Startup(IConfiguration configuration)
            {
              Configuration = configuration;
            }
        
            public IConfiguration Configuration { get; }
        
            // This method gets called by the runtime. Use this method to add services to the container.
            public void ConfigureServices(IServiceCollection services)
            {
              services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
              //配置Swagger
              //注冊Swagger生成器,定義一個Swagger 文檔
              services.AddSwaggerGen(c =>
              {
                c.SwaggerDoc("v1", new Info
                {
                  Version = "v1",
                  Title = "接口文檔",
                  Description = "RESTful API"
                });
                // 為 Swagger 設置xml文檔注釋路徑
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                c.IncludeXmlComments(xmlPath);
              });
            }
        
            // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
            public void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
              if (env.IsDevelopment())
              {
                app.UseDeveloperExceptionPage();
              }
              //啟用中間件服務生成Swagger
              app.UseSwagger();
              //啟用中間件服務生成Swagger,指定Swagger JSON終結點
              app.UseSwaggerUI(c =>
              {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1");
                c.RoutePrefix = string.Empty;//設置根節點訪問
              });
              app.UseMvc();
            }
          }
        }

        然后,右鍵項目,點擊屬性。

        選擇生成,選擇我們的Debug路徑。

        勾選XML文檔文件,自動填充,然后會出現警告(非強迫癥可以忽略警告)

        想要去掉警告,就在上面的取消顯示警告中加入上面顯示的1591,Ctrl+S保存一下,警告就沒了。

        然后點擊調試,將啟動瀏覽器后面url去掉。

        完成后,直接運行VS,就會進入文檔UI頁面了。

        四、使用Swagger

        我們打開第一個方法,點擊Try it out按鈕。

        這個是無參的方法,直接點擊Execute執行。

        執行后可以看到Response body返回的內容。

        點擊第二個方法,給出兩個參數,輸入執行,得到返回結果。

        第三個方法的參數是model,要傳遞json格式的,默認已經生成好了,我們只需要編輯改一下值,再執行就行了。

        五、總結

        到這里.NET Core Api的簡單搭建和使用就告一段落了,此篇學到了如何創建.NET Core Api項目與怎么搭建Swagger生成文檔及使用,接下來我會繼續學習和運用.NET Core Api,并將其過程記錄下來。本來想在這篇標題加個(一),但是想了想最近有可能更不了,等以后更了再加上吧。ㄟ( ▔, ▔ )ㄏ

        好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

        相關文章

        最新評論

        01彩票网app
      1. <sub id="xcyjv"></sub><nav id="xcyjv"><code id="xcyjv"><meter id="xcyjv"></meter></code></nav>
          <nav id="xcyjv"></nav>
        1. <form id="xcyjv"><th id="xcyjv"></th></form><nav id="xcyjv"><mark id="xcyjv"></mark></nav>
            绥化 | 宣城 | 咸宁 | 阳泉 | 荣成 | 青海西宁 | 黑河 | 永新 | 普洱 | 桐城 | 廊坊 | 嘉兴 | 新疆乌鲁木齐 | 通化 | 迪庆 | 威海 | 济源 | 石河子 | 霍邱 | 北海 | 淮南 | 昆山 | 珠海 | 博尔塔拉 | 温州 | 广州 | 泗阳 | 荣成 | 南充 | 孝感 | 吉林长春 | 南安 | 巴彦淖尔市 | 南安 | 鄂州 | 普洱 | 台北 | 苍南 | 淮安 | 宝鸡 | 乌兰察布 | 宁波 | 昭通 | 菏泽 | 武安 | 宝鸡 | 阳江 | 无锡 | 甘南 | 信阳 | 宁国 | 那曲 | 山南 | 铁岭 | 深圳 | 那曲 | 常州 | 惠州 | 吉林长春 | 绍兴 | 甘肃兰州 | 鹤壁 | 庆阳 | 赣州 | 南通 | 通化 | 商洛 | 濮阳 | 朝阳 | 绵阳 | 榆林 | 巴中 | 石狮 | 迪庆 | 台湾台湾 | 焦作 | 四川成都 | 广饶 | 枣庄 | 蓬莱 | 兴安盟 | 甘南 | 高密 | 延安 | 大连 | 扬中 | 新沂 | 靖江 | 河池 | 丽水 | 台北 | 海北 | 海南 | 南充 | 如东 | 扬中 | 攀枝花 | 永州 | 广元 | 辽阳 | 大兴安岭 | 安顺 | 河北石家庄 | 曲靖 | 大连 | 保定 | 万宁 | 泰州 | 酒泉 | 随州 | 正定 | 安顺 | 项城 | 西双版纳 | 恩施 | 来宾 | 基隆 | 兴安盟 | 汉川 | 赣州 | 烟台 | 鞍山 | 克孜勒苏 | 邳州 | 兴安盟 | 丹阳 | 龙口 | 衡水 | 东莞 | 姜堰 | 石嘴山 | 铜仁 | 锡林郭勒 | 霍邱 | 吴忠 | 建湖 | 黄石 | 深圳 | 琼海 | 滕州 | 宝应县 | 屯昌 | 鸡西 | 库尔勒 | 海东 | 万宁 | 巴中 | 阳泉 | 庄河 | 三门峡 | 巴音郭楞 | 龙口 | 黔西南 | 偃师 | 泗阳 | 汕头 | 浙江杭州 | 汉川 | 广饶 | 铜陵 | 南通 | 延安 | 鄢陵 | 吴忠 | 阿勒泰 | 泰兴 | 陇南 | 象山 | 五家渠 | 通化 | 吉林长春 | 塔城 | 河源 | 陕西西安 | 南阳 | 亳州 | 盐城 | 三亚 | 建湖 | 仁寿 | 青州 | 白城 | 辽源 | 石嘴山 | 阿坝 | 德清 | 克拉玛依 | 任丘 | 泰兴 | 锡林郭勒 | 广汉 | 双鸭山 | 扬州 | 滁州 | 安阳 | 昌都 | 巴中 | 阿拉善盟 | 周口 | 洛阳 | 姜堰 | 潜江 | 长垣 | 马鞍山 | 泰安 | 中卫 | 百色 | 简阳 | 呼伦贝尔 | 蓬莱 | 阿勒泰 | 济源 | 荆门 | 安庆 | 吉安 | 烟台 | 益阳 | 郴州 | 武威 | 绵阳 | 涿州 | 凉山 | 六安 | 中卫 | 漯河 | 基隆 | 灵宝 | 库尔勒 | 吐鲁番 | 定州 | 仁怀 | 湘潭 | 扬中 | 阿克苏 | 遂宁 | 河南郑州 | 德阳 | 台湾台湾 | 怀化 | 西藏拉萨 | 临夏 | 云南昆明 | 宁德 | 毕节 | 潍坊 | 大庆 | 黄南 | 汝州 | 梧州 | 周口 | 陕西西安 | 淮安 | 伊春 | 聊城 | 赵县 | 汕头 | 张北 | 绵阳 | 抚顺 | 云浮 | 德州 | 黄南 | 台南 | 白城 | 铜川 | 绥化 | 六盘水 | 十堰 | 宝鸡 | 嘉兴 | 徐州 | 文昌 | 南京 | 张北 | 安阳 | 齐齐哈尔 | 西藏拉萨 | 阿里 | 巴音郭楞 | 钦州 | 江西南昌 | 嘉峪关 | 秦皇岛 | 佛山 | 长葛 | 内蒙古呼和浩特 | 鄂尔多斯 | 锡林郭勒 | 甘肃兰州 | 淮安 | 固原 | 湘西 | 怀化 | 丹阳 | 株洲 | 黑河 | 铜仁 | 泰兴 | 吉林 | 平凉 | 长治 | 石嘴山 | 迪庆 | 舟山 | 霍邱 | 泰兴 | 莱州 | 万宁 | 娄底 | 招远 | 邹平 | 本溪 | 铁岭 | 丽江 | 赣州 | 昌吉 | 四川成都 | 博尔塔拉 | 衢州 | 攀枝花 | 攀枝花 | 七台河 | 大理 | 甘肃兰州 | 黔南 | 眉山 | 莱芜 | 巴彦淖尔市 | 庆阳 | 阿拉尔 | 咸阳 | 曲靖 | 海南海口 | 宣城 | 五指山 | 清徐 | 昆山 | 海南 | 公主岭 | 库尔勒 | 库尔勒 | 贺州 | 昆山 | 海南海口 | 儋州 | 怀化 | 仁寿 | 临海 | 扬中 | 潮州 | 广元 | 唐山 | 长兴 | 昌吉 | 张掖 | 邢台 | 安岳 | 文山 | 遵义 | 朔州 | 泸州 | 宜宾 | 阿克苏 | 河池 | 甘南 | 天水 | 琼海 | 张掖 | 云浮 | 温岭 | 温州 | 阿坝 | 七台河 | 景德镇 | 宿迁 | 贵港 | 义乌 | 海西 | 绵阳 | 河池 | 阿勒泰 | 孝感 | 四平 | 随州 | 扬中 | 赵县 | 宁德 | 厦门 | 定西 | 崇左 | 通化 | 呼伦贝尔 | 湛江 | 青州 | 台北 | 玉溪 | 泰安 | 海宁 | 葫芦岛 | 岳阳 | 玉树 | 吴忠 | 柳州 | 吴忠 | 德阳 | 益阳 | 鸡西 | 山南 | 图木舒克 | 中卫 | 平凉 | 宜昌 | 四川成都 | 南阳 | 启东 | 邹平 | 黄石 | 临夏 | 张家口 | 内江 | 日土 | 固原 | 宁夏银川 | 曹县 | 泰兴 | 阿里 | 通化 | 吉林 | 临汾 | 娄底 | 改则 | 许昌 | 邢台 | 澳门澳门 | 曹县 | 济宁 | 南京 | 海南海口 | 崇左 | 平凉 | 大兴安岭 | 商丘 | 深圳 | 锡林郭勒 | 张掖 | 沧州 | 五指山 | 固原 | 榆林 | 新疆乌鲁木齐 | 邹平 | 广西南宁 | 莆田 | 张掖 | 漯河 | 大理 | 鄂尔多斯 | 新泰 | 淮安 | 屯昌 | 德阳 | 珠海 | 文昌 | 陇南 | 周口 | 巴音郭楞 | 台湾台湾 | 阿勒泰 | 贺州 | 临海 | 吕梁 | 信阳 | 莱州 | 孝感 | 阿拉尔 | 洛阳 | 日土 | 珠海 | 福建福州 | 柳州 | 海南 | 山西太原 | 海南海口 | 延边 | 孝感 | 安康 | 鹤壁 | 阳春 | 汕尾 | 大同 | 永州 | 安徽合肥 | 四川成都 | 禹州 | 商丘 | 荆州 | 余姚 | 洛阳 | 白银 | 河南郑州 | 怀化 | 鄂州 | 衢州 | 泗洪 | 鄂州 | 诸暨 | 桓台 | 泰州 | 日照 | 内江 | 濮阳 | 眉山 | 大理 | 瑞安 | 东方 | 黔南 | 焦作 | 大连 | 湖北武汉 | 巴音郭楞 | 嘉善 | 宿州 | 石河子 | 新沂 | 泉州 | 鹤壁 | 燕郊 | 宜昌 | 甘肃兰州 | 宁波 | 扬州 | 东营 | 乳山 | 锡林郭勒 | 湛江 | 安徽合肥 | 台南 | 高雄 | 焦作 | 咸阳 | 鄢陵 | 喀什 | 兴化 | 屯昌 | 大理 | 宿州 | 衡阳 | 塔城 | 江西南昌 | 灌云 | 开封 | 钦州 | 吐鲁番 | 宜都 | 南充 | 济南 | 漯河 | 乌兰察布 | 溧阳 | 普洱 | 贺州 | 滕州 | 来宾 | 陇南 | 百色 | 海西 | 公主岭 | 晋城 | 义乌 | 泗洪 | 东海 | 黔南 | 临沧 | 松原 | 库尔勒 | 汝州 | 吉林 | 新沂 | 图木舒克 | 廊坊 | 湘西 | 渭南 | 娄底 | 桐乡 | 毕节 | 塔城 | 香港香港 | 深圳 | 甘南 | 白银 | 锡林郭勒 | 石河子 | 石河子 | 百色 | 定州 | 保亭 | 十堰 | 白沙 | 黄南 | 图木舒克 | 克拉玛依 | 巴中 | 包头 | 黑龙江哈尔滨 | 香港香港 | 黄冈 | 定安 | 定西 | 陵水 | 信阳 | 台南 | 营口 | 澳门澳门 | 临汾 | 鄂州 | 东海 | 北海 | 呼伦贝尔 | 瑞安 | 汉川 | 河池 | 巴彦淖尔市 | 瑞安 | 内江 | 泸州 | 三亚 | 乳山 | 黔西南 | 儋州 | 泰兴 | 海南海口 | 广州 | 靖江 | 宿迁 | 澄迈 | 天长 | 安阳 | 江门 | 泸州 | 宁夏银川 | 镇江 | 澄迈 | 海北 | 韶关 | 丹东 | 驻马店 | 福建福州 | 鞍山 | 随州 | 靖江 | 大理 | 常德 | 江苏苏州 | 天水 | 安顺 | 石嘴山 | 吉安 | 慈溪 | 瑞安 | 蚌埠 | 咸宁 | 神木 | 郴州 | 通化 | 霍邱 | 澳门澳门 | 曹县 | 吕梁 | 宜昌 | 开封 | 海东 | 驻马店 | 菏泽 | 萍乡 | 晋城 | 无锡 | 大连 | 安庆 | 泗阳 | 苍南 | 晋江 | 东台 | 娄底 | 十堰 | 浙江杭州 | 淮南 | 白沙 | 雅安 | 桐乡 | 保定 | 广元 | 保亭 | 商丘 | 朝阳 | 和田 | 乳山 | 长兴 | 东方 | 安阳 | 鄂尔多斯 | 景德镇 | 昭通 | 塔城 | 新泰 | 宝应县 | 阿拉尔 | 大连 | 五家渠 | 绵阳 | 台湾台湾 | 昌都 | 淄博 | 商丘 | 广汉 | 黄石 | 丽水 | 寿光 | 榆林 | 衡水 | 宁德 | 日照 | 菏泽 | 锡林郭勒 | 郴州 | 廊坊 | 郴州 | 玉溪 | 库尔勒 | 高密 | 江苏苏州 | 瓦房店 | 淮北 | 菏泽 | 绵阳 | 昭通 | 湖南长沙 | 东海 | 金坛 | 日照 | 上饶 | 辽阳 | 海西 | 攀枝花 | 茂名 | 章丘 | 保山 | 随州 | 龙口 | 临海 | 通化 | 清徐 | 丹阳 | 简阳 | 张家口 | 滨州 | 云南昆明 | 黄山 | 东莞 | 普洱 | 宜昌 | 烟台 | 武威 | 海西 | 定西 | 石嘴山 | 萍乡 | 西双版纳 | 建湖 | 泰兴 | 四平 | 东莞 | 益阳 | 运城 | 马鞍山 | 神农架 | 日喀则 | 广汉 | 阳泉 | 牡丹江 | 金华 | 赣州 | 运城 | 阿拉善盟 | 招远 | 安阳 | 永州 | 景德镇 | 朝阳 | 凉山 | 吴忠 | 吉安 | 海东 | 定州 | 乐平 | 永康 | 晋中 | 宁波 | 吉林 | 运城 | 宿迁 | 吉安 | 黔西南 | 白银 | 阳春 | 海门 | 福建福州 | 安顺 | 铁岭 | 包头 | 高密 | 临猗 | 福建福州 | 阿拉善盟 | 吐鲁番 | 平凉 | 吐鲁番 | 中山 | 恩施 | 瓦房店 | 泰安 | 乌海 | 固原 | 山南 | 图木舒克 | 福建福州 | 自贡 | 广安 | 阜新 | 深圳 | 聊城 | 延边 | 通化 | 东营 | 湖南长沙 | 舟山 | 东方 | 遂宁 | 东方 | 开封 | 长治 | 宁国 | 莒县 | 齐齐哈尔 | 丹阳 | 琼海 | 伊犁 | 淮北 | 滨州 | 赵县 | 陕西西安 | 遵义 | 山西太原 | 玉溪 | 临汾 | 商丘 | 保山 | 和田 | 南京 | 保山 | 韶关 | 崇左 | 庆阳 | 苍南 | 德州 | 章丘 | 台北 | 乐平 | 梅州 | 五指山 | 嘉兴 | 朔州 | 龙岩 | 孝感 | 泉州 | 新余 | 定西 | 明港 | 海拉尔 | 海丰 | 兴化 | 济宁 | 昌吉 | 河北石家庄 | 义乌 | 韶关 | 仁寿 | 商丘 | 惠州 | 湘潭 | 山西太原 | 台湾台湾 | 芜湖 | 陇南 | 屯昌 | 甘肃兰州 | 莆田 | 林芝 | 海东 | 安阳 | 咸阳 | 宝鸡 | 和县 | 滕州 | 三沙 | 德州 | 沛县 | 台湾台湾 | 霍邱 | 泰州 | 灵宝 | 桓台 | 庆阳 | 玉溪 | 汕尾 | 桂林 | 海北 | 宣城 | 海拉尔 | 本溪 | 海南海口 | 海南海口 | 荣成 | 文山 | 宁波 | 昌吉 | 丽水 | 三明 | 徐州 | 茂名 | 庄河 | 内蒙古呼和浩特 | 姜堰 | 通辽 | 黔东南 | 大兴安岭 | 濮阳 | 济源 | 宿迁 | 桂林 | 锡林郭勒 | 佳木斯 | 吉林长春 | 忻州 | 云浮 | 安徽合肥 | 保定 | 建湖 | 红河 | 乌海 | 株洲 | 芜湖 | 达州 | 山南 | 宁波 | 湖北武汉 | 泗洪 | 马鞍山 | 保亭 | 邹平 | 鹤岗 | 宿州 | 三沙 | 景德镇 | 诸城 | 赵县 | 陕西西安 | 通化 | 醴陵 | 吕梁 | 阿坝 | 乳山 | 潮州 | 台南 | 枣阳 | 桐乡 | 宁德 | 通化 | 乌海 | 文山 | 灵宝 | 汕头 | 吐鲁番 | 湖州 | 常德 | 永州 | 黔西南 | 海南 | 厦门 | 茂名 | 乳山 | 阿坝 | 义乌 | 绍兴 | 梅州 | 昭通 | 眉山 | 临沂 | 酒泉 | 日土 | 遵义 | 绵阳 | 温岭 | 桂林 | 淮北 | 梧州 | 丹阳 | 荣成 | 台山 | 酒泉 | 西藏拉萨 | 瓦房店 | 项城 | 许昌 | 江苏苏州 | 湖北武汉 | 日土 | 广汉 | 绵阳 | 柳州 | 宁波 | 台山 | 陵水 | 阜新 | 阜阳 | 瑞安 | 阿拉尔 | 顺德 | 盘锦 | 正定 | 临汾 | 仁寿 | 莒县 | 防城港 | 万宁 | 海南 | 安岳 | 阜阳 | 克拉玛依 | 泗阳 | 安庆 | 汝州 | 巴中 | 琼海 | 安康 | 日照 | 南通 | 山南 | 红河 | 临沧 | 燕郊 | 南通 | 巴音郭楞 | 南安 | 衢州 | 黔南 | 临沧 | 襄阳 | 松原 | 呼伦贝尔 | 邳州 | 垦利 | 安庆 | 六安 | 寿光 | 来宾 | 呼伦贝尔 | 公主岭 | 乐山 | 大兴安岭 | 西藏拉萨 | 和县 | 六盘水 | 阿里 | 垦利 | 晋城 | 厦门 | 来宾 | 青海西宁 | 株洲 | 铜陵 |