在.net 6.0中 调用远程服务器web服务,Webservices(xxx.asmx) ,RESTful 风格,2种解决方案。

1.使用 Connected Services**:**

  • 右键单击您的项目,选择 "Add"(添加)-> "Connected Services"(已连接的服务)。

  • 在 "Connected Services" 对话框中,选择 "WCF Web Service"。

  • 在 "WCF Web Service" 对话框中,输入 xxx.asmx 的 URL 地址(例如:http://A.B.C.com/ABCWebService/product/ProductService.asmx),然后点击"转到",然后在点击下方服务中的xxxSoap,右边操作框里面会显示所有方法,然后在输入一个命名空间(例如:CBEC.Web.ProductWebService),然后点击 "下一步"(前往)。截图如下:

  • Visual Studio 将会获取 xxx.asmx 中的方法列表。选择您想要添加的方法,然后点击 "Finish"(完成)。

  • Visual Studio 将为您生成一个代理类,该代理类包含远程服务器上的方法,您可以像调用本地方法一样使用这些方法。

示例代码:

cs 复制代码
using System;
using System.Threading.Tasks;
using YourServiceReference; // 请将 YourServiceReference 替换为实际的服务引用名称

class Program
{
    static async Task Main()
    {
        // 创建服务引用的客户端
        var client = new HuiLvServiceSoapClient(HuiLvServiceSoapClient.EndpointConfiguration.HuiLvServiceSoap);

        // 调用远程服务器的方法
        var result = await client.YourRemoteMethodAsync(param1, param2);
        
        // 处理返回的结果
        Console.WriteLine(result);
    }
}

2.使用 HTTP 客户端:

如果 HuiLvService.asmx 提供的是 RESTful 风格的 Web API,您可以使用 HttpClient 类来进行 HTTP 请求。这种方法适用于 Web API 返回的数据是 JSON 或其他常见格式的情况。

示例代码

cs 复制代码
using System;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using var client = new HttpClient();

        // 设置基础地址
        client.BaseAddress = new Uri("https://your-remote-server-url/");

        // 构造请求数据
        var requestData = new YourRequestData { /*...*/ };

        // 将请求数据序列化为 JSON
        var requestDataJson = JsonSerializer.Serialize(requestData);

        // 构造 HTTP 请求
        var content = new StringContent(requestDataJson, System.Text.Encoding.UTF8, "application/json");

        // 发起 POST 请求
        var response = await client.PostAsync("HuiLvService.asmx/YourRemoteMethod", content);

        // 处理响应
        if (response.IsSuccessStatusCode)
        {
            var responseContent = await response.Content.ReadAsStringAsync();
            // 将响应内容反序列化为结果类型
            var result = JsonSerializer.Deserialize<YourResultType>(responseContent);
            // 处理返回的结果
            Console.WriteLine(result);
        }
        else
        {
            Console.WriteLine("HTTP 请求失败:" + response.StatusCode);
        }
    }
}

请注意,以上代码中的 YourServiceReference、YourRemoteMethodAsync、YourRequestData、YourResultType 等都是示例,请根据实际情况替换为您的实际服务引用和方法名称。另外,HTTP 客户端方法适用于 RESTful 风格的 Web API,如果服务提供的是 SOAP Web 服务,请使用 Service References 方法来调用。

相关推荐
u0111026751 小时前
图片处理接口如何统一错误信息 前端提示与后端错误码设计
前端·状态模式
福兮说1 小时前
浏览器里把 iPhone 的 HEIC 转成 JPG:Chrome 解不开、转完大了七成、拍摄时间全丢,六个坑实测
前端·javascript·图像处理·chrome·ios·iphone·heic
libokaifa1 小时前
把语音模型塞进手机:sherpa-onnx 在 Android 上的 ASR / TTS
前端
Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_sink_get_type调用流程与实战(六十五)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
deli0072 小时前
DLA 枝晶生长实测:5000 个粒子集体停摆之后,分形维数收敛到 1.70
前端
码事漫谈2 小时前
三步改掉 AI 味,附可直接复制的去 AI 味提示词
后端
IT_陈寒2 小时前
Redis卡顿的锅,这次真不是大key的错
前端·人工智能·后端
可乐鸡翅yeah_2 小时前
video.js 集成 hls.js 开发 M3U8 播放器,新手高频踩坑
开发语言·前端·javascript·后端·ecmascript·m3u8·音视频在线播放
程序猿_极客2 小时前
【免费】分享一套优质的基于SpringBoot的服装商城管理系统的设计与实现(带可视化图表、协同过滤功能),源码+文档+视频详解(讲解)
java·spring boot·后端·服装商城管理系统
程序猿追2 小时前
HarmonyOS 6 上做个极简浏览器:Web 组件 + 前进后退 + 加载进度
前端·华为·harmonyos