我的要求是我将在XML中使用SOAP数据。我将从文件中读取,然后将请求发送到webservice.Then,我需要将响应写入文件。我正在使用vs 2005。
XmlDocument doc = new XmlDocument();
doc.Load(@"path to xml file");
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.w3schools.com/webservices/tempconvert.asmx");
req.Headers.Add("SOAPAction", "\"\"");
req.ContentType = "text/xml;charset=\"utf-8\"";
req.Accept = "text/xml";
req.Method = "POST";
Stream stm = req.GetRequestStream();
doc.Save(stm);
stm.Close();
WebResponse resp = req.GetResponse();
stm = resp.GetResponseStream();
StreamReader r = new StreamReader(stm);
Console.WriteLine(r.ReadToEnd());
答案 0 :(得分:0)
您还没有说明您遇到的问题。您期待发生什么以及实际发生了什么?
无论如何,您尝试调用的Web服务似乎是一个ASP.Net Web服务(从URL上的.asmx扩展名推断)。我怀疑问题出在您的SOAPAction标头中,该标头应设置为与Web方法名称连接的Web服务命名空间。在您的示例中,我认为这将是http://tempuri.org/CelciusToFahrenheit
。您在<CelciusToFahrenheit>
元素上也有错误的XML命名空间。它应该是http://tempuri.org
。
尽管如此,这并不是从C#中使用Web服务的好方法。您应该将Web服务的WSDL作为Web引用添加到项目中,然后只需调用生成的类来调用Web服务功能。
由于您正在调用的服务是打开文档的ASP.Net Web服务,您实际上可以在http://www.w3schools.com/webservices/tempconvert.asmx?op=CelsiusToFahrenheit
查看完整的请求和响应格式