ASP.NET Core如何使用HttpClient调用WebService
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"ASP.NET Core如何使用HttpClient调用WebService",内容详细,步骤清晰,细节处理妥当,希望这篇"ASP.NET Core如何使用HttpClient
千家信息网最后更新 2026年11月01日ASP.NET Core如何使用HttpClient调用WebService
本文小编为大家详细介绍"ASP.NET Core如何使用HttpClient调用WebService",内容详细,步骤清晰,细节处理妥当,希望这篇"ASP.NET Core如何使用HttpClient调用WebService"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
一、创建WebService
我们使用VS创建一个WebService,增加一个PostTest方法,方法代码如下
using System.Web.Services;namespace WebServiceDemo{ /// /// WebTest 的摘要说明 /// [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; /// /// 通过构造函数实现注入 /// /// public WebServiceTestController(IHttpClientFactory httpClientFactory) { _httpClientFactory = httpClientFactory; } [HttpGet] public async Task Get() { string strResult = ""; try { // url地址格式:WebService地址+方法名称 // WebService地址:http://localhost:5010/WebTest.asmx // 方法名称: PostTest string url = "http://localhost:5010/WebTest.asmx/PostTest"; // 参数 Dictionary dicParam = new Dictionary(); dicParam.Add("para", "1"); // 将参数转化为HttpContent HttpContent content = new FormUrlEncodedContent(dicParam); strResult = await PostHelper(url, content); } catch (Exception ex) { strResult = ex.Message; } return strResult; } /// /// 封装使用HttpClient调用WebService /// /// URL地址 /// 参数 /// private async Task 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的调用。生产环境中我们可以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; /// /// 通过构造函数实现注入 /// /// public WebServiceTestController(IHttpClientFactory httpClientFactory, IConfiguration configuration) { _httpClientFactory = httpClientFactory; _configuration = configuration; } [HttpGet] public async Task 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 dicParam = new Dictionary(); dicParam.Add("para", "1"); // 将参数转化为HttpContent HttpContent content = new FormUrlEncodedContent(dicParam); strResult = await PostHelper(url, content); } catch (Exception ex) { strResult = ex.Message; } return strResult; } /// /// 封装使用HttpClient调用WebService /// /// URL地址 /// 参数 /// private async Task 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"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
地址
方法
参数
名称
控制器
文件
控制
配置
内容
文章
结果
代码
函数
动态
格式
封装
妥当
思路
摘要
新知
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司简介
哈尔滨大商圈互联网科技有限公司
高科技互联网
云信互联网科技有限公司
互联网科技官网
互联网金融监管科技数据
涨乐互联网科技
互联网科技金融公司
中国 科技 互联网
互联网科技股票
互联网科技缩写
西安互联网科技公司
互联网 新科技
互联网科技公司介绍
恒生科技互联网指数分析
承德科技产业互联网发展
广州梦谷互联网科技有限公司领导
云鲸互联网络科技有限公司
版纳互联网科技选哪家
河南商务圈互联网科技有限公司
湖南永感互联网科技有限公司
美国互联网科技巨头监管
互联网金融 科技金融
深圳齐家互联网科技
腾讯科技 互联网女皇
欧洲十大科技互联网公司
湖南诚度互联网科技有限公司
互联网公司科技股
恒生互联网科技指数跳水
科技互联网公司两年变化