2013-02-25 59 views
9

我试图将XMLDocument发布到URL。这是我到目前为止有:将XML发布到URL

var uri = System.Configuration.ConfigurationManager.AppSettings["Url"]; 
    var template = System.Configuration.ConfigurationManager.AppSettings["Template"]; 
    XmlDocument reqTemplateXml = new XmlDocument(); 
    reqTemplateXml.Load(template); 

    reqTemplateXml.SelectSingleNode("appInfo/appNumber").InnerText = x; 
    reqTemplateXml.SelectSingleNode("appInfo/coappNumber").InnerText = y; 

    WebRequest req = null; 
    WebResponse rsp = null; 
    req = WebRequest.Create(uri); 
    req.Method = "POST"; 
    req.ContentType = "text/xml"; 
    rsp = req.GetResponse(); 

我试图搞清楚的是,这样它可以发布到该URL如何将此XmlDocument加载到WebRequest对象。

+0

将这样的工作'rsp.Load(request.GetResponse()的GetResponseStream());' – MethodMan 2013-02-26 00:03:55

回答

14

您需要写入RequestStream,然后像这样调用req.GetResponse()

using (var writer = new StreamWriter(req.GetRequestStream())) 
    { 
     writer.Write(xml); 
    } 
+0

最后我能够调试此。我没有在req对象的任何地方看到xml。一旦这行被执行,我应该在哪里寻找xml?我只在req对象中看到两个键,Content-type和Host。 我只想确认xml是否正确添加到对象中,但无法弄清楚。一直在探索req对象一个小时。 谢谢! – OBL 2013-02-26 21:22:14

+0

您将无法在visual studio中的req对象的任何位置看到它。它被写入流中,如果重置流,我相信你会搞砸了。如果你想确保它正确地提交给服务器脚本,像wireshark这样的工具可能就是你想要的。通常,我会设置一个“本地”服务器脚本,就像我自己的小型asp.net网站,它只是将请求转储到文件。然后我将xml /有效载荷发布到我的本地站点并检查文件转储。 – 2013-02-26 23:31:39

+0

什么是“xml”(传递给write.Write())在你的代码中? – 2014-02-24 22:23:13