簡體   English   中英

如何使用WSDL

[英]How to use a WSDL

我需要使用Web服務。 他們給我發了WSDL文件。 我應該怎么做才能將它添加到我的網站並開始使用它作為代理。 (如果我將它放在虛擬目錄上,它可以被發現,但是它是否授予我與真實Web服務的連接?)

我會啟動Visual Studio,創建一個Web項目(或控制台應用程序 - 無關緊要)。

對於.Net標准:

  1. 我將右鍵單擊該項目,然后從“ 添加”上下文菜單中選擇“添加服務引用”。
  2. 我會點擊A​​dvanced,然后點擊Add Service Reference。
  3. 我會得到wsdl的完整文件路徑並粘貼到地址欄中。 然后點開箭頭(按下按鈕)。
  4. 如果嘗試加載文件時出錯,則必須存在文件需要解析的損壞且未解析的URL,如下所示: 在此輸入圖像描述 有關如何修復的信息,請參閱此答案: Stackoverflow回答:無法為wsdl文件創建服務引用

如果沒有錯誤,您只需設置要用於訪問服務的NameSpace,它就會為您生成。

對於.Net Core

  1. 我會右鍵單擊該項目,然后從Add上下文菜單中選擇Connected Service。
  2. 我將從列表中選擇Microsoft WCF Web服務引用提供程序。
  3. 我會按下瀏覽並立即選擇wsdl文件,設置命名空間,我很高興。 如果您遇到任何錯誤,請參閱上面的錯誤修復URL。

上述任何方法都將生成一個簡單,非常基本的WCF客戶端供您使用。 您應該在生成的代碼中找到“YourservicenameClient”類。

出於參考目的,可以在Obj / debug(或release)/ XsdGeneratedCode中找到生成的cs文件,您仍然可以在TempPE文件夾中找到dll。

創建的服務應該具有WSDL協定中每個已定義方法的方法。

實例化客戶端並調用您要調用的方法 - 這就是全部!

YourServiceClient client = new YourServiceClient();
client.SayHello("World!");

如果需要指定遠程URL(不使用默認創建的遠程URL),則可以在代理客戶端的構造函數中輕松執行此操作:

YourServiceClient client = new YourServiceClient("configName", "remoteURL");

其中configName是要使用的端點的名稱(您將使用除URL之外的所有設置), remoteURL是表示要連接的URL的字符串(而不是配置中包含的URL)。

在視覺工作室。

  • 創建或打開一個項目。
  • 右鍵單擊解決方案資源管理器中的項目。
  • 選擇“添加服務參考”
  • 使用您收到的WSDL粘貼地址。
  • 單擊確定。

如果沒有錯誤,您應該能夠在對象瀏覽器中看到服務引用以及所有相關方法。

使用WSDL.EXE實用程序從WSDL生成Web服務代理。

你會得到一個很長的C#源文件,其中包含一個如下所示的類:

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    ...
}

在客戶端,消耗Web服務的代碼:

  1. 實例化MyService。
  2. 設置其Url屬性
  3. 調用Web方法

如果要在.Net Core 項目中添加wsdl引用,則沒有“添加Web引用”選項。

要添加wsdl引用,請轉到Solution Explorer,右鍵單擊References項目項,然后單擊Add Connected Service選項

在此輸入圖像描述

然后單擊“Microsoft WCF Web服務參考”:

在此輸入圖像描述

在URI文本框中輸入文件路徑並導入WSDL:

在此輸入圖像描述

它將生成一個簡單的,非常基本的WCF客戶端,你可以使用它:

YourServiceClient client = new YourServiceClient();
client.DoSomething();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM