我需要创建xml消息并将其发送到Web服务。然后,我应该通过查看来自服务的响应xml来处理响应。我之前使用过WCF,但我应该用旧式做。在.NET中使用HTTP请求响应消费Web服务?
我应该从哪里开始?
在此先感谢。
我需要创建xml消息并将其发送到Web服务。然后,我应该通过查看来自服务的响应xml来处理响应。我之前使用过WCF,但我应该用旧式做。在.NET中使用HTTP请求响应消费Web服务?
我应该从哪里开始?
在此先感谢。
如果你不想使用WCF/ASMX客户,你应该开始通过学习HTTP和SOAP(1.1,1.2)了解POST请求和信息建设和阅读+ HttpWebRequest需要的HTTP标头。这样做是没有意义的 - 坚持WCF或ASMX(这实际上是旧的方式)。
下面是一些基本的C#代码,你想要做什么,其中URL是你调用Web服务的URL,行动是服务的SOAP动作和信封是一个包含请求SOAP信封的字符串:
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;
}
添加对Web服务的引用。 Visual Studio将为您创建类,这样您就不需要自己创建XML请求并解析XML响应。
检查此链接http://msdn.microsoft.com/en-us/library/d9w023sx(v=VS.90).aspx
你为什么试图做到这一点很难? – 2011-06-08 07:53:46
这就是我的老板想让我作为初级开发人员做的事情。 – 2011-06-08 07:56:35
你的老板肯定不希望你通过做手工HttpWebRequest的周围所有的东西调用服务。如果他想,他是......按照他以前的方式,他最有可能意味着ASMX客户端=添加Web引用。 – 2011-06-08 07:58:44