Dan*_*Dan 3 c# asp.net-web-api
我必须使用一个旧产品,该产品将字符串作为外部呼叫网站的响应。它不是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; }
}
Run Code Online (Sandbox Code Playgroud)
原始返回的字符串:
"<?xml version=\"1.0\" encoding=\"utf-8\"?><q1:OrderPackage......
Run Code Online (Sandbox Code Playgroud)
我需要它不打印\字符。
小智 5
在这种情况下,您应该返回带有纯文本内容的自定义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;
}
Run Code Online (Sandbox Code Playgroud)
让我知道这是否对您有帮助