HttpresponseMessage risposta = await client.PostAsync(new Uri(uri), queryString);提前结束执行
HttpresponseMessage risposta = await client.PostAsync(new Uri(uri), queryString); ends execution prematurely
我正在尝试使用一些 C# 代码连接到 CheckPoint API,我输入所有数据(用户名和密码 json 格式并编译 Uri),当我调用它时它就结束了无一例外的执行
这是代码
public async Task<HttpResponseMessage> CPAPICall()
{
HttpClient client = new HttpClient();
Console.Write("username: ");
String uname = Console.ReadLine();
Console.Write("password: ");
String pwd = Console.ReadLine();
String json = "{\n" +
"\"user\":" + "\"" + uname + "\",\n" +
"\"password\"" + "\"" + pwd + "\",\n" +
"}";
StringContent queryString = new StringContent(json, Encoding.UTF8, "application/json");
Console.WriteLine("Inserisci l'IP e la porta della management CP a cui vuoi connetterti (Esempio 192.168.1.1:443, se non si inserisce la porta quella di default è 443):");
String IpAddr = Console.ReadLine();
String[] IpAddrEPort = new String[2];
HttpResponseMessage risposta = new HttpResponseMessage();
if (IpAddr.Contains(":"))
{
IpAddrEPort = IpAddr.Split(':');
}
else
{
IpAddrEPort[0] = IpAddr;
IpAddrEPort[1] = "443";
}
String uri = "https://" + IpAddr + "/web_api/login";
try
{
risposta = await client.PostAsync(new Uri(uri), queryString);
}
catch (HttpListenerException e)
{
Console.WriteLine(e);
Console.ReadKey();
}
String risp = risposta.StatusCode.ToString();
Console.WriteLine(risp);
Console.ReadKey();
return risposta;
}
json 字符串管理非常糟糕,但在我测试时它对我有帮助。
代码到此结束risposta = await client.PostAsync(new Uri(uri), queryString);
对原因有什么建议吗?
我建议使用 Newtonsoft.Json 将您的字符串数据正确序列化为 JSON,这样会好 100%。关于过早结束,我认为调用 'CPAPICall' 的方法不是以异步方式执行的,因此请检查此方法是否是异步创建的,并在 'CPAPICall' 之前使用 await 运算符线.
我正在尝试使用一些 C# 代码连接到 CheckPoint API,我输入所有数据(用户名和密码 json 格式并编译 Uri),当我调用它时它就结束了无一例外的执行
这是代码
public async Task<HttpResponseMessage> CPAPICall()
{
HttpClient client = new HttpClient();
Console.Write("username: ");
String uname = Console.ReadLine();
Console.Write("password: ");
String pwd = Console.ReadLine();
String json = "{\n" +
"\"user\":" + "\"" + uname + "\",\n" +
"\"password\"" + "\"" + pwd + "\",\n" +
"}";
StringContent queryString = new StringContent(json, Encoding.UTF8, "application/json");
Console.WriteLine("Inserisci l'IP e la porta della management CP a cui vuoi connetterti (Esempio 192.168.1.1:443, se non si inserisce la porta quella di default è 443):");
String IpAddr = Console.ReadLine();
String[] IpAddrEPort = new String[2];
HttpResponseMessage risposta = new HttpResponseMessage();
if (IpAddr.Contains(":"))
{
IpAddrEPort = IpAddr.Split(':');
}
else
{
IpAddrEPort[0] = IpAddr;
IpAddrEPort[1] = "443";
}
String uri = "https://" + IpAddr + "/web_api/login";
try
{
risposta = await client.PostAsync(new Uri(uri), queryString);
}
catch (HttpListenerException e)
{
Console.WriteLine(e);
Console.ReadKey();
}
String risp = risposta.StatusCode.ToString();
Console.WriteLine(risp);
Console.ReadKey();
return risposta;
}
json 字符串管理非常糟糕,但在我测试时它对我有帮助。
代码到此结束risposta = await client.PostAsync(new Uri(uri), queryString);
对原因有什么建议吗?
我建议使用 Newtonsoft.Json 将您的字符串数据正确序列化为 JSON,这样会好 100%。关于过早结束,我认为调用 'CPAPICall' 的方法不是以异步方式执行的,因此请检查此方法是否是异步创建的,并在 'CPAPICall' 之前使用 await 运算符线.