.NET Core GetFromJsonAsync 退出时没有错误或调试信息
.NET Core GetFromJsonAsync exits with no error or debugging information
我正在尝试调试 GetFromJsonAsync
的请求,该请求应该从 Flask API 获取数据并在 .NET Core cli 应用程序中转换为 JSON。
然而,我遇到的问题是,在执行请求后,cli 应用程序简单地退出而没有错误。我已经尝试实施 try/catch 块,但那里什么也没有显示。
Flask 端点构建 jsonifies 一些来自 Postgres 的 uuid 和消息,returns 将它们发送给客户端。
由于 GetFromJsonAsync
是异步的,我已经尝试同样制作 Flask 端点,但这似乎根本没有帮助。后者工作正常并已通过 curl 验证。
我知道调用已执行,正如我在网络服务器日志中看到的那样。
一个简单的 returns 普通 javascript 对象 {"foo": "bar"}
的类似调用工作正常,这就是为什么我认为这可能是一个异步问题,但我看不到任何错误等来进行故障排除。我在调用后在 foreach
上放置了一个断点,但这从未被击中。
我在这里错过了什么?
public static async void GetMessages()
{
ConfigureHeaders();
try
{
var client = Client;
var res = await Client.GetFromJsonAsync<Received>(Url + "/api/chat/message"); // stops here
foreach (var c in res!.messages) // breakpoint here is never hit
Console.WriteLine(c);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
public class Received
{
public Dictionary<string,string> messages { get; set; }
}
烧瓶
@message.get("/api/chat/message")
@csrf.exempt
async def get_messages():
new_msgs = {}
msgs = await get_unreplied() # DB gets called from another function here
try:
for m in msgs:
new_msgs[m.id] = m.message
if len(new_msgs) != 0:
return jsonify(new_msgs)
else:
return jsonify("no messages")
except Exception as e:
print(str(e))
This returns...
{
"id_foo1": "message_bar1",
"id_foo2": "message_bar2"
}
最佳猜测:您的 Main
函数未等待对 GetMessages
的调用
public async Task<int> Main(string []args)
{
await GetMessages();
}
我正在尝试调试 GetFromJsonAsync
的请求,该请求应该从 Flask API 获取数据并在 .NET Core cli 应用程序中转换为 JSON。
然而,我遇到的问题是,在执行请求后,cli 应用程序简单地退出而没有错误。我已经尝试实施 try/catch 块,但那里什么也没有显示。
Flask 端点构建 jsonifies 一些来自 Postgres 的 uuid 和消息,returns 将它们发送给客户端。
由于 GetFromJsonAsync
是异步的,我已经尝试同样制作 Flask 端点,但这似乎根本没有帮助。后者工作正常并已通过 curl 验证。
我知道调用已执行,正如我在网络服务器日志中看到的那样。
一个简单的 returns 普通 javascript 对象 {"foo": "bar"}
的类似调用工作正常,这就是为什么我认为这可能是一个异步问题,但我看不到任何错误等来进行故障排除。我在调用后在 foreach
上放置了一个断点,但这从未被击中。
我在这里错过了什么?
public static async void GetMessages()
{
ConfigureHeaders();
try
{
var client = Client;
var res = await Client.GetFromJsonAsync<Received>(Url + "/api/chat/message"); // stops here
foreach (var c in res!.messages) // breakpoint here is never hit
Console.WriteLine(c);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
public class Received
{
public Dictionary<string,string> messages { get; set; }
}
烧瓶
@message.get("/api/chat/message")
@csrf.exempt
async def get_messages():
new_msgs = {}
msgs = await get_unreplied() # DB gets called from another function here
try:
for m in msgs:
new_msgs[m.id] = m.message
if len(new_msgs) != 0:
return jsonify(new_msgs)
else:
return jsonify("no messages")
except Exception as e:
print(str(e))
This returns...
{
"id_foo1": "message_bar1",
"id_foo2": "message_bar2"
}
最佳猜测:您的 Main
函数未等待对 GetMessages
public async Task<int> Main(string []args)
{
await GetMessages();
}