C#はRefitを使ってWebサービスインターフェースを接続する

C#はRefitを使ってWebサービスインターフェースを接続する

NET CoreはWebサービスをドッキングできないと言い、ウェブマスターは彼を助けるためにいくつかの情報を見つけた。

最后更新 2023/03/15 20:33
沙漠尽头的狼
预计阅读 2 分钟
分类
.NET
标签
.NET C# Refit WebService

Refitは、Web APIと簡単に通信するのに役立つ強力な型セーフRESTful HTTPクライアントライブラリです。しかし、この問題では、Webサービスと通信するためにRefitを使用する必要があるため、Refitに特定の設定を行う必要があります。

Refitを使用してWebサービスインターフェイスを呼び出す例を以下に示します。

  1. まず、Refitライブラリへの参照をプロジェクトに追加する必要があります。NuGetパッケージマネージャからRefitを検索してインストールできます。

  2. 次に、Webサービスインターフェイスを記述するためのインターフェイスを定義する必要があります。

public interface IMyWebService
{
    [Post("/MyWebService.asmx")]
    Task<string> MyWebServiceMethod(string param1, string param2);
}

其中 [Post] 指定了调用的 HTTP 方法和 URL,Task<string> 是方法返回类型。

  1. 接下来,我们需要使用 Refit 的 RestService.For 方法创建一个客户端实例:
var client = RestService.For<IMyWebService>("http://example.com");

其中 "http://example.com" 是 Web Service 的地址。

  1. 最後に、クライアントインスタンスを使用してWebサービスインターフェイスを呼び出すことができます。
var result = await client.MyWebServiceMethod("param1", "param2");

其中 result 是 Web Service 方法的返回值。

需要注意的是,由于 Web Service 接口不是基于 RESTful 架构的,因此需要进行一些特定的配置。例如,在接口定义中使用 [Post] 指定调用的 HTTP 方法为 POST,同时需要将 Web Service 方法的名称作为 URL 的一部分,例如:

public interface IMyWebService
{
    [Post("/MyWebService.asmx/MyWebServiceMethod")]
    Task<string> MyWebServiceMethod(string param1, string param2);
}

また、クライアントインスタンスでWebサービスのSOAP 1.1名前空間を指定する必要があります。

var client = RestService.For<IMyWebService>("http://example.com", new RefitSettings
{
    UrlParameterFormatter = new SoapUrlParameterFormatter(),
    ContentSerializer = new XmlContentSerializer(new RefitXmlSerializerSettings
    {
        Namespace = "http://schemas.xmlsoap.org/soap/envelope/",
        UseXmlSerializerFormat = true
    })
});

在这里,我们使用了 SoapUrlParameterFormatter 来处理 URL 中的参数,使用了 XmlContentSerializerRefitXmlSerializerSettings 来处理请求和响应的 XML 数据。

要約すると、Refitを使用してWebサービスインターフェイスを呼び出すにはいくつかの特定の設定が必要ですが、上記の例に従うだけで簡単に接続できます。

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2026/04/22

バージョン別の. NETサポート状況(250 7 0 7更新)

仮想マシンとテストマシンを使用して、各バージョンのオペレーティングシステムの. NETサポートをテストします。オペレーティングシステムのインストール後、対応するランタイムを測定し、スターダストエージェントをパスとして実行できます。

继续阅读
同分类 / 同标签 2026/02/07

AOTの使用経験

プロジェクトの最初から、新しい機能が追加されたり、新しい構文が使用されたりするたびに、AOTリリーステストを行うという良い習慣を身につける必要があります。

继续阅读