[英]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.