2009-04-17 20 views
1

这里是我的代码,看到说的部分???在这里做什么???我不知道,我为了写这篇文章的XML能够在通过objRequest有我的POST发送...在哪里用XmlWriter通过HttpWebRequest POST在ASP.NET中发送XML?

string project_id = context.Request.QueryString["project"]; 
string person_id = context.Request.QueryString["person"]; 
string post_date = context.Request.QueryString["date"]; 
string post_hours = context.Request.QueryString["hours"]; 
string case_num = context.Request.QueryString["case"]; 


HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create("http://company.updatelog.com/projects/" + project_id + "/time_entries.xml"); 

objRequest.Method = "POST"; 

objRequest.ContentType = "application/xml"; 

XmlWriterSettings settings = new XmlWriterSettings(); 
settings.Indent = true; 
settings.IndentChars = (" "); 


using (XmlWriter writer = XmlWriter.Create(?????WHAT TO DO HERE????, settings)) 
{ 
    writer.WriteStartElement("time-entry"); 
    writer.WriteElementString("person-id", person_id); 
    writer.WriteElementString("date", post_date); 
    writer.WriteElementString("hours", post_hours); 
    writer.WriteElementString("description", "Worked on Case #" + case_num); 
    writer.WriteEndElement(); 
} 


StreamWriter myWriter = null; 


try 
{ 

    myWriter = new StreamWriter(objRequest.GetRequestStream()); 

    myWriter.Write(post_xml); 

} 

catch (Exception e) 
{ 

    context.Response.Write(e.Message); 

} 

finally 
{ 

    myWriter.Close(); 

} 

回答

0

你可以只使用一个XmlTextWriter这需要一个字符串生成器,它基本上只是写它记忆。

代码:

var buidler = new StringBuilder(); 
var writer = XmlWriter.Create(builder); 
+0

那么我该如何把它放入请求? – BigOmega 2009-04-17 17:19:46

+0

你应该只能写streamWriter.Write(builder.ToString()); – BFree 2009-04-17 17:29:32

3

XmlWriter writer = XmlWriter.Create(objRequest.GetRequestStream(), settings);

您不需要创建一个StreamWriter然后。您在XmlWriter中编写的内容将写入requestStream。