通过控制台应用程序将XML数据发布到Web服务

时间:2014-03-19 13:40:37

标签: c# xml web-services console-application

我的QA框中有一个Web服务,它接受并处理XML字符串,发送电子邮件然后返回另一个XML字符串。为了测试它,我希望通过使控制台应用程序通过向它发送XML来调用它来重载它,在控制台应用程序中进行循环,以便在一次拍摄中发送1,000次。我在互联网上看到了很多样本​​,但我无法让它们发挥作用。

这就是我所拥有的:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Linq;

namespace WSStressTest
{
    class Program
    {
        static void Main()
        {
            ASCIIEncoding encoding = new ASCIIEncoding();
            string postData = "<?xml version='1.0'?><ROOT><SOMETHING></SOMETHING></ROOT>";

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://url:1111/WebService.asmx/ProcessWebService");
            request.Method = "POST";
            byte[] data = encoding.GetBytes(postData);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(data, 0, data.Length);
            dataStream.Close();

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            Console.WriteLine(responseFromServer);

            reader.Close();
            dataStream.Close();
            response.Close();
            //Console.ReadLine();
        }
    }
}

我总是在HttpWebResponse中遇到500错误。现在,查看代码我唯一能想到的就是POST的参数名称。我的意思是,如果我做一个表格

<form method="post" action="http://url:1111/WebService.asmx/ProcessWebService">
    <input type="text" name="sXML" /> <input type="submit" value="submit" />
</form>

将xml放入输入并提交将起作用。但我将数据发布到网络服务 sXML 。如何在控制台应用程序sXML中命名xml帖子?这是我缺少的还是我的代码中还有其他错误?

其他问题:让这个运行1000次的最佳方法是什么。我想把电话放在一段时间内<1000。有更好的方法吗?

谢谢!

0 个答案:

没有答案