Escaping escape characters passed from my API method

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);
+4
1

 return Request.CreateResponse(HttpStatusCode.OK, res);

var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.Accepted) {
      RequestMessage = Request,
      Content = new StringContent(content)
    };
    return ResponseMessage(httpResponseMessage);
+3

Source: https://habr.com/ru/post/1540433/


All Articles