我必须使用一个旧产品,该产品将字符串作为调用外部网站的响应。它不是 JSON 或 XML 类型。即使数据是 xml 字符串。
问题是我的 WebAPI 在返回值中发回了 c# 的转义字符。例如\"1.0\"是返回的原始字符串。 有没有办法摆脱返回的响应中的转义字符?这看起来很简单。可能是 api 调用的一个属性。
public class DumpController : ApiController
{
public string Get()
{
var myobject = new OrderPackage();
myobject.Shipper = "something here";
myobject.ShippingMethod = "So jones said \" this is not right \"";
myobject.TrackingId = "19199n99fuajf";
myobject.Id = 1;
var result = Utility.GenericFunctions.ToXml(myobject, myobject.GetType());
return result;
}
}
[Serializable()]
public class OrderPackage
{
public int Id { get; set; }
public int OrderId { get; set; }
public string TrackingId { get; set; }
public Nullable<System.DateTime> PickupDate { get; set; }
public string Shipper { get; set; }
public string ShippingMethod { get; set; }
public string PackageCreatorId { get; set; }
public string CartPackageId { get; set; }
}
原始返回字符串:
"<?xml version=\"1.0\" encoding=\"utf-8\"?><q1:OrderPackage......
我不需要它来打印\字符。
最佳答案
在那种情况下,您应该返回一个带有纯文本内容的自定义 HttpResponseMessage,因为当您在操作方法中返回“字符串”类型时,将使用框架的默认内容序列化程序,这就是为什么您的字符串将是编码为 javascript 字符串。
[HttpGet]
public HttpResponseMessage Get()
{
var myobject = new OrderPackage();
myobject.Shipper = "something here";
myobject.ShippingMethod = "So jones said \" this is not right \"";
myobject.TrackingId = "19199n99fuajf";
myobject.Id = 1;
var result = Utility.GenericFunctions.ToXml(myobject, myobject.GetType());
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StringContent(result, System.Text.Encoding.UTF8, "text/plain");
return response;
}
如果对你有帮助,请告诉我
关于c# - 如何从 WebAPI 中删除转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45403347/