My API method that my xml generates looks like this (this is normal)
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
but somewhere between my api method
return Request.CreateResponse(HttpStatusCode.OK, res);
and where do I get a response from
string api_response = client.UploadString(myurl, myRequest)
my api_response line above looks below
"\"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>
because of which my XDocument.Parse fails
Edit: more details I get a response from this code
HttpWebRequest httpRequest = WebRequest.Create(url) as HttpWebRequest;
httpRequest.Method = "POST";
httpRequest.ContentType = "text/xml; charset=utf-8";
httpRequest.Accept = "text/xml";
httpRequest.Credentials = new NetworkCredential(userName, password);
byte[] bytesToWrite = Encoding.UTF8.GetBytes(root.ToString());
using (Stream st = httpRequest.GetRequestStream())
{
st.Write(bytesToWrite, 0, bytesToWrite.Length);
}
HttpWebResponse response = (HttpWebResponse)httpRequest.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream, Encoding.UTF8);
string read = reader.ReadToEnd();
return read;
Reading returns a well-formed xml: this is only after I CreateResponse, when additional backslashes come into play (looking at the line pressing the enlarged glass option)
When I return the answer back from my api (like text in Internet explorer), my actual text looks like this:
It turned out
replacing me with ResponseMessage
var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.Accepted) {
RequestMessage = Request,
Content = new StringContent(content)
};
return ResponseMessage(httpResponseMessage);