【发布时间】:2020-04-23 17:15:55
【问题描述】:
我有以下设置:
WebApi #2 需要调用 WebApi #1 并简单地通过其 OkResult 将 JSON 结果传回。我遇到的问题是,如果我这样做,我最终会在响应中得到转义的 JSON:
"{\"id\":1,\"key\":\"value\",\"key\":\"value\",\"key\":\"value\",\"key\":\"value\"}"
什么是通过此回报的最佳方式?
更新:
这是对 WebApi #1 进行 API 调用的代码:
public async Task<string> Get(string uri)
{
try
{
string responseBody = await _client.GetStringAsync(uri);
return responseBody;
}
catch (HttpRequestException ex)
{
_logger.LogError(ex.Message);
return null;
}
}
这是 WebApi #2 中的返回:
public async Task<IActionResult> Get(string data)
{
var uri = String.Format(Environment.GetEnvironmentVariable("ENDPOINT"), data);
var result = await _client.Get(uri);
return Ok(result);
}
【问题讨论】:
-
您必须提供更多关于如何进行传递的代码。很可能您正在对已经是 json 的字符串再执行一次 JsonSerialization,这就是您得到这个的原因。您只需要获取一个字符串并将其作为带有适当标题的字符串进一步发送
-
已添加到帖子中。谢谢!
-
因此在该代码中,控制器进行“_client.Get(uri)”调用,该调用将返回“responseBody”,这是从 WebApi #1 返回的 OkResult。所以我看到发生的事情是,控制器中的 OkResult 再次对其进行序列化,这导致了转义的 JSON。
标签: c# .net-core asp.net-core-mvc