首页 > 解决方案 > 从 web 服务返回的 .net 5.0 SwaggerClient 字符串产生异常

问题描述

我似乎有一个非常简单的问题,但我看不到也找不到解决方案。

我有一个简单的网络服务功能:


        [HttpGet]
        [Route("GetVersion")]
        [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(string))]
        public ActionResult<string> GetVersion()
        {
            var v = $"WebApi: {FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion}";
            return v;
        }

在我的客户端中,我添加了一个连接服务,我的客户端 exe 使用它来调用 Web 服务 API。问题是,如果我调用那个 API,我会得到一个异常:

Newtonsoft.Json.JsonReaderException:'解析值时遇到意外字符:W. 路径'',第 1 行,位置 1。

问题似乎是,客户端期待一个 JSON 字符串,但服务器正在发送一个纯字符串。就我而言, “WebAPI:1.0.0.0”。因此,意外的'W'。所以 saggerClient 中的解析逻辑失败了。

问题是 - 我做错了什么。如何从 Web API 返回“纯”字符串?还是 swaggerClient 只支持非原始数据类型?如果是这样,我该如何更改 Web API,以便它返回 JSON 字符串?

标签: asp.net-core.net-coreswagger

解决方案


推荐阅读