如何将ASP.NETCore的HttpClient用于调用长尾关键词的WebService实现高效数据交互?

2026-03-30 10:401阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计703个文字,预计阅读时间需要3分钟。

如何将ASP.NETCore的HttpClient用于调用长尾关键词的WebService实现高效数据交互?

一、创建WebService我们使用VS创建一个WebService,并添加一个PostTest方法。

csharpusing System.Web.Services;

namespace WebServiceDemo{ /// /// WebTest的摘要说明 /// [WebService(Namespace=)] public class WebTest { public string PostTest(string input) { // 方法实现 return 处理结果: + input; } }}

一、创建WebService

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

using System.Web.Services; namespace WebServiceDemo { /// <summary> /// WebTest 的摘要说明 /// </summary> [WebService(Namespace = "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正常浏览。

如何将ASP.NETCore的HttpClient用于调用长尾关键词的WebService实现高效数据交互?

二、使用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 _localhost:5010/WebTest.asmx // 方法名称: PostTest string url = "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 = _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 _localhost:5010/WebTest.asmx // 方法名称: PostTest // 读取配置文件里面设置的URL地址 //string url = "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的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。

本文共计703个文字,预计阅读时间需要3分钟。

如何将ASP.NETCore的HttpClient用于调用长尾关键词的WebService实现高效数据交互?

一、创建WebService我们使用VS创建一个WebService,并添加一个PostTest方法。

csharpusing System.Web.Services;

namespace WebServiceDemo{ /// /// WebTest的摘要说明 /// [WebService(Namespace=)] public class WebTest { public string PostTest(string input) { // 方法实现 return 处理结果: + input; } }}

一、创建WebService

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

using System.Web.Services; namespace WebServiceDemo { /// <summary> /// WebTest 的摘要说明 /// </summary> [WebService(Namespace = "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正常浏览。

如何将ASP.NETCore的HttpClient用于调用长尾关键词的WebService实现高效数据交互?

二、使用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 _localhost:5010/WebTest.asmx // 方法名称: PostTest string url = "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 = _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 _localhost:5010/WebTest.asmx // 方法名称: PostTest // 读取配置文件里面设置的URL地址 //string url = "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的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。