Domanda

Ecco il mio codice, vedere la parte che dice ??? cosa fare qui ??? Non sono sicuro dove scrivo questo XML al fine di essere in grado di inviare nel mio post tramite l'objRequest lì ...

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();

}
È stato utile?

Soluzione

Si può semplicemente utilizzare un XmlTextWriter che prende una stringa builder, che fondamentalmente solo lo scrive nella memoria.

Codice:

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

Altri suggerimenti

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

È necessario non creare uno StreamWriter poi. Il contenuto che si scrive in XmlWriter verrà scritto il requestStream.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top