簡體   English   中英

如何在沒有WSDL的情況下創建soap客戶端

[英]How to create a soap client without WSDL

我需要訪問一個安全的Web服務,標頭中的每個請求都需要攜帶一個令牌。

我知道Web服務的端點,我也知道如何創建令牌。

但我無法看到Web服務的WSDL。

在C#中有沒有辦法創建一個沒有WSDL文件的soap客戶端。

我已經驗證了這個使用HttpWebRequest類的代碼可以工作:

// Takes an input of the SOAP service URL (url) and the XML to be sent to the
// service (xml).  
public void PostXml(string url, string xml) 
{
    byte[] bytes = Encoding.UTF8.GetBytes(xml);
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.ContentLength = bytes.Length;
    request.ContentType = "text/xml";

    using (Stream requestStream = request.GetRequestStream())
    {
       requestStream.Write(bytes, 0, bytes.Length);
    }

    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    {
        if (response.StatusCode != HttpStatusCode.OK)
        {
            string message = String.Format("POST failed with HTTP {0}", 
                                           response.StatusCode);
            throw new ApplicationException(message);
        }
    }
}

您需要創建正確的SOAP信封並將其作為“xml”變量傳遞。 這需要一些閱讀。 我發現這個SOAP教程很有幫助。

SOAP客戶端只是一個HTTP客戶端,其中包含更多內容。 請參閱HttpWebRequest類 然后,您可能必須使用XML序列化創建自己的SOAP消息。

您可以創建自己的服務,將其公開以獲得WSDL,然后從中生成客戶端......那種漫長的過程。

您能否請求Web服務的開發人員通過電子郵件向您發送WSDL和XSD文件? 如果是這樣,您可以將文件轉儲到文件夾中,然后使用硬盤上的WSDL添加服務引用。

暫無
暫無

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

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