使用ky.从.NET Core API获取响应消息



我使用ky包向web api发送HTTP请求。除了处理错误消息外,一切都正常。

让我给你看我的源代码:

// api method
[HttpPost("Test")]
public async Task<IActionResult> Test([FromBody] TestViewModel model)
{
if(model.Test)
{
return StatusCode(StatusCode.Status200OK, "Success message");
}
else
{
return StatusCode(StatusCodes.Status500InternalServerError, "Error message");
}
}

我的目标是在前端获取并显示成功消息错误消息text。

客户端:

//webclient.js
import ky from "ky";
export const webclient = ky.create({
prefixUrl: "http://localhost:62655/api",
});

触发API调用:

//testAPI.js
import { webclient } from '../../common/webclient';
const result = await webclient.post('Order/Test', { json: { ...model } }).json();
console.log(result);

如果状态代码等于200,则消息(成功消息(将正确显示在控制台中,但对于500(或400,或任何其他(控制台,则保持为空。

DevTools确认API返回500状态代码,消息错误消息,因此这不是API问题。

问题是:如何使用ky获取错误消息?

ky库似乎不是很成熟,但我确实找到了这个问题线程,它可能会有所帮助~https://github.com/sindresorhus/ky/issues/107#issuecomment-476048453

我强烈建议你只使用普通的fetch,如果需要,你可以完全控制处理响应文本

const response = await fetch("http://localhost:62655/api/Order/Test", {
method: "POST",
headers: { "Content-type": "application/json" },
body: JSON.stringify({ ...model })
})
if (!response.ok) {
throw new Error(`${response.status}: ${await response.text()}`)
} 
console.log(await response.json())

最新更新