在.NET中使用带有http请求响应的Web服务?

时间:2011-06-08 07:50:40

标签: .net xml web-services soap httprequest

我需要创建xml消息并将其发送到Web服务。然后我应该通过查看来自服务的响应xml来处理响应。我之前使用过WCF,但我应该用旧式做。

我应该从哪里开始?

提前致谢。

3 个答案:

答案 0 :(得分:2)

以下是一些基本的C#代码,可以执行您想要的操作,其中url是您正在调用的Web服务的URL,action是服务的soap操作,envelope是包含请求的soap信封的字符串:< / p>

WebRequest request = CreateHttpRequestFromSoapEnvelope(url, action, envelope);
WebResponse response = request.GetResponse();

private WebRequest CreateHttpRequestFromSoapEnvelope(string url, string action, string envelope)
{
    WebRequest request = WebRequest.Create(new Uri(url));
    request.Method = "POST";
    request.ContentType = "text/xml";
    request.Headers.Add(action);
    ServicePointManager.Expect100Continue = false;

    ApplyProxyIfRequired(request);

    using (Stream stream = request.GetRequestStream())
    {
        using (StreamWriter streamWriter = new StreamWriter(stream))
        {
            StringBuilder builder = new StringBuilder();
            builder.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            builder.Append(envelope);
            string message = builder.ToString();
            streamWriter.Write(message);
        }
    }

    return request;
}

答案 1 :(得分:1)

如果您不想使用WCF / ASMX客户端,则应首先学习HTTP和SOAP(1.11.2)以了解POST请求和消息所需的HTTP头建设和阅读+ HttpWebRequest。这样做是没有意义的 - 坚持使用WCF或ASMX(这实际上是旧的方式)。

答案 2 :(得分:0)

添加对Web服务的引用。 Visual Studio将为您创建类,以便您不需要自己创建XML请求并解析XML响应 请检查此链接http://msdn.microsoft.com/en-us/library/d9w023sx(v=VS.90).aspx