全局格式化 .net Web API 响应



我有一个Web Api服务,它从另一个返回Json的服务中检索数据。我不想对响应执行任何操作,我只想将其直接返回给客户端。

由于响应是一个字符串,如果我简单地返回响应,它包含转义字符和混乱的格式。如果我将响应转换为对象,WebApi 将使用 Json.Net 自动正确设置响应的格式。

 public IHttpActionResult GetServices()
    {
        var data =  _dataService.Get(); //retrieves data from a service
        var result = JsonConvert.DeserializeObject(data); //convert to object
        return Ok(result);
    }

我想要的是 A:能够从服务返回确切的字符串响应,没有任何转义字符并且格式正确,或者 B:设置一个全局设置,该设置将自动反序列化响应,以便 Web API 可以按照我已经做的方式处理它。

在启动时,我正在设置一些描述如何处理格式化的值,但显然这些值对于我尝试执行的操作不正确。

        HttpConfiguration configuration = new HttpConfiguration();
        var settings = configuration.Formatters.JsonFormatter.SerializerSettings;
        settings.Formatting = Formatting.Indented;
        settings.ContractResolver = new DefaultContractResolver();

我需要创建自定义合同解析程序或其他东西吗?有没有一个已经为我处理这个问题?

谢谢

如果你只想传递json(选项A),你可以这样做

public IHttpActionResult GetServices() {
    var json = _dataService.Get(); //retrieves data from a service
    HttpContent content = new System.Net.Http.StringContent(json, Encoding.UTF8, "application/json");
    var response = Request.CreateResponse(HttpStatusCode.OK);
    response.Content = content;
    return ResponseMessage(response);
}

相关内容

  • 没有找到相关文章

最新更新