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; }
}
原始返回的字符串:
 "<?xml version=\"1.0\" encoding=\"utf-8\"?><q1:OrderPackage......
我需要它不打印\字符。
小智 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;
}
让我知道这是否对您有帮助
| 归档时间: | 
 | 
| 查看次数: | 2649 次 | 
| 最近记录: |