我需要创建xml消息并将其发送到Web服务。然后我应该通过查看来自服务的响应xml来处理响应。我之前使用过WCF,但我应该用旧式做。
我应该从哪里开始?
提前致谢。
答案 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.1,1.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