安全なWebサービスにアクセスする必要があります。ヘッダー内のすべてのリクエストには、トークンを含める必要があります。
Webサービスのエンドポイントを知っています。また、トークンの作成方法も知っています。
しかし、WebサービスのWSDLが表示されません。
C#には、WSDLファイルなしでsoapクライアントを作成する方法があります。
安全な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を使用してサービス参照を追加できます。