WSDLなしでSOAPクライアントを作成する方法
-
23-09-2019 - |
質問
私は、セキュアなWebサービスを訪問する必要があります、 トークンを運ぶために、ヘッダーを必要としているすべてのリクエストます。
私は、Webサービスへのエンドポイントを知っています、 私はまた、トークンを作成する方法を知っています。
しかし、私は、WebサービスのWSDLを見ることができません。
の方法は、WSDLファイルなしで、SOAPクライアントを作成するには、C#であります。
解決
私はは、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を持っているし、その...長い道のりの種類からクライアントを生成するために、それを公開し、独自のサービスを作成することができます。
あなたは電子メールであなたにWSDLとXSDファイル(複数可)を送信するために、Webサービスの開発を求めることができますか?その場合は、フォルダ内のファイルをダンプし、ハードディスク上のWSDLを使用してサービス参照を追加することができます。
所属していません StackOverflow