C# ASP.NET核心应用程序中的API Post调用不起作用
我的ASP.NET核心应用程序(托管在Azure上)的程序类中有以下代码发布到Dialogflow API,但是,我显然没有收到任何数据。我的代码中有错误吗C# ASP.NET核心应用程序中的API Post调用不起作用,c#,asp.net,azure,post,azure-web-app-service,C#,Asp.net,Azure,Post,Azure Web App Service,我的ASP.NET核心应用程序(托管在Azure上)的程序类中有以下代码发布到Dialogflow API,但是,我显然没有收到任何数据。我的代码中有错误吗 namespace WebApplicationTest { public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); makeRequest(); }
namespace WebApplicationTest
{
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
makeRequest();
}
public static async void makeRequest()
{
string myJson = "{'queryInput': {'text': {'text': 'sample user query', ' languageCode': 'en-US'}}}";
using (var client = new HttpClient())
{
var response = await client.PostAsync(
"https://dialogflow.googleapis.com/v2/{session=projects/projectname/agent/sessions/sessionID1}:detectIntent",
new StringContent(myJson, System.Text.Encoding.UTF8, "application/json"));
var responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);
}
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
}
命名空间WebApplicationTest
{
公共课程
{
公共静态void Main(字符串[]args)
{
BuildWebHost(args.Run();
makeRequest();
}
公共静态异步void makeRequest()
{
字符串myJson=“{'queryInput':{'text':{'text':'sample user query','languageCode':'en US'}}}”;
使用(var client=new HttpClient())
{
var response=wait client.PostAsync(
"https://dialogflow.googleapis.com/v2/{session=projects/projectname/agent/sessions/sessionID1}:detectinent“,
新的StringContent(myJson,System.Text.Encoding.UTF8,“application/json”);
var responseString=await response.Content.ReadAsStringAsync();
控制台。写入线(响应线);
}
}
公共静态IWebHost BuildWebHost(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.Build();
}
}
不知道您在这里试图解决什么问题,但是您的makeRequest()
不会被调用,因为您在BuildWebHost(args)之后调用它。Run()
将阻止调用线程,直到主机关闭
阅读更多信息。你会得到什么样的回应?一些错误?暂停?代码引发的异常?其他消息?您需要进行更多的调试。e、 g.您是否设置了断点来逐步遍历代码,查看每个阶段发生了什么,并检查了您的变量?我似乎无法进行太多调试,因为我根本没有收到响应。您可以进行调试,以查看查询是否得到执行…如我所说,逐步浏览你的代码…代码中的小错误:“languageCode”=>“languageCode”哦,这很有意义,你建议我在哪里调用函数?正如我所写的,我不知道你在那里尝试做什么。您的名称空间看起来像一个测试,然后您启动一个WebHost来服务任何API,我想是吧?同时,您希望使用一个名为makeRequest的方法调用外部API。此外,它是异步无效的,您永远不应该这样做(除非在非常原始的情况下)。我建议先读一些关于软件开发的书。当网页加载后,我正试图通过我的函数调用外部api。Web主机已在类中,因为该应用程序托管在azure上。然后,您可能希望将其移动到startup.cs,但请使用Task替换该void,并在调用它时使用wait。