返回顶部
首页 > 资讯 > 精选 >ASP.NET Core如何使用HttpClient调用WebService
  • 852
分享到

ASP.NET Core如何使用HttpClient调用WebService

2023-06-29 16:06:12 852人浏览 独家记忆
摘要

本文小编为大家详细介绍“asp.net Core如何使用HttpClient调用WEBService”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.net Core如何使用HttpClient调用WebServi

本文小编为大家详细介绍“asp.net Core如何使用HttpClient调用WEBService”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.net Core如何使用HttpClient调用WebService”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、创建WebService

我们使用VS创建一个WebService,增加一个PostTest方法,方法代码如下

using System.Web.Services;namespace WebServiceDemo{    /// <summary>    /// WebTest 的摘要说明    /// </summary>    [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBinding(ConfORMsTo = WsiProfiles.BasicProfile1_1)]    [System.ComponentModel.ToolboxItem(false)]    // 若要允许使用 ASP.NET ajax 从脚本中调用此 Web 服务,请取消注释以下行。     // [System.Web.Script.Services.ScriptService]    public class WebTest : System.Web.Services.WebService    {        [WebMethod]        public string HelloWorld()        {            return "Hello World";        }        [WebMethod]        public string PostTest(string para)        {            return $"返回参数{para}";        }    }}

创建完成以后,我们发布WebService,并部署到IIS上面。保证可以在IIS正常浏览。

二、使用HttpClient调用WebService

我们使用VS创建一个ASP.net core webapi项目,由于是使用HttpClient,首先在ConfigureServices方法中进行注入

public void ConfigureServices(IServiceCollection services){    // 注入HttpClient    services.AddHttpClient();    services.AddControllers();}

然后添加一个名为WebServiceTest的控制器,在控制器里面添加一个Get方法,在Get方法里面取调用WebService,控制器代码如下

using Microsoft.Aspnetcore.mvc;using System;using System.Collections.Generic;using System.Net;using System.Net.Http;using System.Threading.Tasks;using System.Xml;namespace HttpClientDemo.Controllers{    [Route("api/WebServiceTest")]    [ApiController]    public class WebServiceTestController : ControllerBase    {        readonly IHttpClientFactory _httpClientFactory;        /// <summary>        /// 通过构造函数实现注入        /// </summary>        /// <param name="httpClientFactory"></param>        public WebServiceTestController(IHttpClientFactory httpClientFactory)        {            _httpClientFactory = httpClientFactory;        }        [HttpGet]        public async Task<string> Get()        {            string strResult = "";            try            {                // url地址格式:WebService地址+方法名称                     // WebService地址:http://localhost:5010/WebTest.asmx                // 方法名称:  PostTest                string url = "http://localhost:5010/WebTest.asmx/PostTest";                // 参数                Dictionary<string, string> dicParam = new Dictionary<string, string>();                dicParam.Add("para", "1");                // 将参数转化为HttpContent                HttpContent content = new FormUrlEncodedContent(dicParam);                strResult = await PostHelper(url, content);            }            catch (Exception ex)            {                strResult = ex.Message;            }            return strResult;        }        /// <summary>        /// 封装使用HttpClient调用WebService        /// </summary>        /// <param name="url">URL地址</param>        /// <param name="content">参数</param>        /// <returns></returns>        private async Task<string> PostHelper(string url, HttpContent content)        {            var result = string.Empty;            try            {                using (var client = _httpClientFactory.CreateClient())                using (var response = await client.PostAsync(url, content))                {                    if (response.StatusCode == httpstatusCode.OK)                    {                        result = await response.Content.ReadAsStringAsync();                        XmlDocument doc = new XmlDocument();                        doc.LoadXml(result);                        result = doc.InnerText;                    }                }            }            catch (Exception ex)            {                result = ex.Message;            }            return result;        }    }}

然后启动调试,查看输出结果

ASP.NET Core如何使用HttpClient调用WebService

调试的时候可以看到返回结果,在看看页面返回的结果 

ASP.NET Core如何使用HttpClient调用WebService

这样就完成了WebService的调用。生产环境中我们可以URL地址写在配置文件里面,然后程序里面去读取配置文件内容,这样就可以实现动态调用WebService了。我们对上面的方法进行改造,在appsettings.JSON文件里面配置URL地址

{  "Logging": {    "LogLevel": {      "Default": "Information",      "Microsoft": "Warning",      "Microsoft.Hosting.Lifetime": "Information"    }  },  "AllowedHosts": "*",  // url地址  "url": "http://localhost:5010/WebTest.asmx/PostTest"}

修改控制器的Get方法

using Microsoft.AspNetCore.Mvc;using Microsoft.Extensions.Configuration;using System;using System.Collections.Generic;using System.Net;using System.Net.Http;using System.Threading.Tasks;using System.Xml;namespace HttpClientDemo.Controllers{    [Route("api/WebServiceTest")]    [ApiController]    public class WebServiceTestController : ControllerBase    {        readonly IHttpClientFactory _httpClientFactory;        readonly IConfiguration _configuration;        /// <summary>        /// 通过构造函数实现注入        /// </summary>        /// <param name="httpClientFactory"></param>        public WebServiceTestController(IHttpClientFactory httpClientFactory, IConfiguration configuration)        {            _httpClientFactory = httpClientFactory;            _configuration = configuration;        }        [HttpGet]        public async Task<string> Get()        {            string strResult = "";            try            {                // url地址格式:WebService地址+方法名称                     // WebService地址:http://localhost:5010/WebTest.asmx                // 方法名称:  PostTest                // 读取配置文件里面设置的URL地址                //string url = "http://localhost:5010/WebTest.asmx/PostTest";                string url = _configuration["url"];                // 参数                Dictionary<string, string> dicParam = new Dictionary<string, string>();                dicParam.Add("para", "1");                // 将参数转化为HttpContent                HttpContent content = new FormUrlEncodedContent(dicParam);                strResult = await PostHelper(url, content);            }            catch (Exception ex)            {                strResult = ex.Message;            }            return strResult;        }        /// <summary>        /// 封装使用HttpClient调用WebService        /// </summary>        /// <param name="url">URL地址</param>        /// <param name="content">参数</param>        /// <returns></returns>        private async Task<string> PostHelper(string url, HttpContent content)        {            var result = string.Empty;            try            {                using (var client = _httpClientFactory.CreateClient())                using (var response = await client.PostAsync(url, content))                {                    if (response.StatusCode == HttpStatusCode.OK)                    {                        result = await response.Content.ReadAsStringAsync();                        XmlDocument doc = new XmlDocument();                        doc.LoadXml(result);                        result = doc.InnerText;                    }                }            }            catch (Exception ex)            {                result = ex.Message;            }            return result;        }    }}

这样就可以动态调用WebService了。 

读到这里,这篇“ASP.NET Core如何使用HttpClient调用WebService”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: ASP.NET Core如何使用HttpClient调用WebService

本文链接: https://lsjlt.com/news/325765.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASP.NET Core如何使用HttpClient调用WebService
    本文小编为大家详细介绍“ASP.NET Core如何使用HttpClient调用WebService”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core如何使用HttpClient调用WebServi...
    99+
    2023-06-29
  • ASP.NETCore使用HttpClient调用WebService
    一、创建WebService 我们使用VS创建一个WebService,增加一个PostTest方法,方法代码如下 using System.Web.Services; names...
    99+
    2024-04-02
  • ASP.NET Core项目中调用WebService的方法
    一、前言 现实生产中,有一些比较老的系统对外提供的接口都是WebService形式的,如果是使用.NET Framework创建的项目调用WebService非常方便,网上有很多代码...
    99+
    2024-04-02
  • 如何使用axis调用WebService及Java WebService调用工具类
    目录WebService 简介概述使用 axis 调用 WebService引入依赖WebService 调用工具类总结WebService 简介 概述 能使得运行在不同机器上的不同...
    99+
    2023-05-17
    axis调用webservice接口 java webservice接口调用方式 webservice如何调用
  • ASP.NET Core 中FromServices如何使用
    本篇文章给大家分享的是有关 ASP.NET Core 中FromServices如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。构造函数...
    99+
    2024-04-02
  • ASP.NET WebService怎么使用
    本篇内容介绍了“ASP.NET/WebService怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!sqlconnection()){...
    99+
    2023-06-17
  • 如何在ASP.NET Core中使用HttpClientFactory
    目录为什么要使用 HttpClientFactory 使用 HttpClientFactory 注入 Controller ASP.Net Core 是一个开源的,跨平台的,轻量级模...
    99+
    2024-04-02
  • 如何在ASP.NET Core中使用ViewComponent
    目录前言自定义一个组件ViewComponent特性Taghelper方式Reference前言 在之前的开发过程中,我们对于应用或者说使用一些小的组件,通常使用分布页(parti...
    99+
    2024-04-02
  • 如何在ASP.Net Core中使用Serilog
    目录安装 Serilog使用 Serilog Sink使用 Serilog 替换原生的 Logger记录日志的一个作用就是方便对应用程序进行跟踪和排错调查,在实际应用上都是引入 日志...
    99+
    2024-04-02
  • Serilog如何在ASP.Net Core中使用
    本篇文章为大家展示了Serilog如何在ASP.Net Core中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。安装 Serilog使用 Visual Studio 新建 ASP.Net Cor...
    99+
    2023-06-14
  • 如何在Asp.Net Core中使用Refit
    本篇文章给大家分享的是有关如何在Asp.Net Core中使用Refit,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ASP.NET 是什么ASP.NET 是开源,跨平台,高性...
    99+
    2023-06-07
  • ASP.NET Core中间件如何使用
    今天小编给大家分享一下ASP.NET Core中间件如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.前言...
    99+
    2023-06-29
  • C#中如何使用HttpPost调用WebService
    这篇文章主要介绍了C#中如何使用HttpPost调用WebService,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。WebService服务端代码public c...
    99+
    2023-06-29
  • java中如何使用HttpClient调用接口
    目录java使用HttpClient调用接口HttpClient 提供的主要的功能直接言归正传了!!!!上代码java的HttpClient调用远程接口使用方法实例java使用Htt...
    99+
    2022-11-13
    java使用HttpClient HttpClient调用接口 java HttpClient
  • PHP中调用ASP.NET的WebService的代码
    其中有个web method像这样的: 代码如下: [WebMethod] public string HelloWorld() { return "Hello World"...
    99+
    2022-06-07
    WebService net ASP.NET PHP ASP
  • 在ASP.NET Core中应用HttpClient获取数据和内容
    目录概述关于HttpClient在ASP.NET Core中使用HttpClient发送GET请求支持不同的响应格式HttpClient中的优先级使用HttpRequestMessa...
    99+
    2024-04-02
  • 在ASP.NET Core中用HttpClient发送POST, PUT和DELETE请求
    目录在ASP.NET Core中使用HttpClient发送POST请求使用HttpRequestMessage发送POST请求在ASP.NET Core中使用HttpClient发...
    99+
    2024-04-02
  • ASP.NET Core实时库SignalR如何使用
    这篇文章主要讲解了“ASP.NET Core实时库SignalR如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET Core实时库SignalR如何使用...
    99+
    2023-06-26
  • 如何使用ASP.NET Core 配置文件
    目录前言Json配置文件的使用RedisHelper类XML配置文件的使用前言 在ASP.NET ,我们使用XML格式的.Config文件来作为配置文件,而在ASP.NET Core...
    99+
    2024-04-02
  • SpringBoot如何使用axis调用webservice接口
    本篇内容介绍了“SpringBoot如何使用axis调用webservice接口”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!WebServ...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作