c# - 如何从 WebAPI 中删除转义字符

标签 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; }
}

原始返回字符串:

 "<?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/

相关文章:

c# - 用普通对象重构 long if - else if - else

c# - 在不让线程休眠的情况下,如何在执行下一行代码之前等待计时器完成?

asp.net-web-api - ValidateAntiForgeryToken如何与可通过Web或 native 应用程序访问的Web API配合使用?

c# - 使用 LINQ 递增 ID

javascript - 我如何测试我的 web api Post Web 方法以了解内部发生了什么?

c# - WebAPI 部署到 IIS,给出 404 Not Found

c# - 使用 iOS 客户端应用程序和 C# 服务器进行长轮询

c# - 如何在 DataGridViewCell 中托管控件以进行显示和编辑?

c# - 从墓碑返回时 RootVisual 为空?

asp.net-web-api - 调用 web api PUT FromBody "value"始终为 null