如何从NAnt调用Web服务

时间:2014-07-18 10:20:38

标签: web-services nant

我正在研究的NAnt构建系统有一些< exec>本质上调用EXE的任务,这些EXE是围绕.NET Web服务调用的包装器。我想尽可能地简化事情,并且我想到如果我可以直接从NAnt脚本进行Web服务调用,那将消除一步。但是,我无法找到执行此任务的任务。我能找到的最近的是< get>任务。至少,我需要一个名为< post>。

的任务

有人有建议吗?

2 个答案:

答案 0 :(得分:3)

您可以使用<script language="C#">

http://nant.sourceforge.net/release/0.92/help/tasks/script.html

  <script language="C#">
      <code>
        <![CDATA[
          public static void postToWebservice() {
              ....
          }
        ]]>
      </code>
  </script>

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("https://WEB_URL");
myReq.Method = "POST";
myReq.ContentType = "text/xml";
myReq.Timeout = 30000;
myReq.Headers.Add("SOAPAction", ":\"#save\"");

byte[] PostData = Encoding.UTF8.GetBytes(xmlDocument);
myReq.ContentLength = PostData.Length;

using (Stream requestStream = myReq.GetRequestStream())
{
    requestStream.Write(PostData, 0, PostData.Length);
}

HttpWebResponse response = (HttpWebResponse)myReq.GetResponse();

答案 1 :(得分:0)

我建议你看看NAnt Contrib。有许多非常有用的功能,包括一些Web服务功能。