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