我目前正在使用内部 API 和视觉工作室(对他们来说都是新的)。我正在尝试向服务器提交一个 GET 请求,该请求将为我提供一个带有用户信息的 JSON。预期 JSON 响应中的字段之一是 connect_status,如果连接则显示 true,一旦连接完成则显示 false,这意味着已收到响应。到目前为止,我一直在使用 Sleep 来处理以下问题,等待一段时间,直到得到响应。
bool isConnected;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost");
request.Method = WebRequestMethods.Http.Get;
request.ContentType = "application/json";
System.Threading.Thread.Sleep(10000);
do
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream receiveStream = response.GetResponseStream();
StreamReader info = new StreamReader(receiveStream);
string json = info.ReadToEnd();
accountInfo user1 = JsonConvert.DeserializeObject<accountInfo>(json);
Console.WriteLine(jsonResponse);
isConnected = user1.connect_status;
}
while (isConnected == true);
这样做的问题是我必须等待更长的时间,所花费的时间是可变的,这就是为什么我必须设置更长的睡眠时间。Alsosomeimtes 10 seconds 可能还不够,在这种情况下,当 do while 循环第二次循环时,我在 while(isConnected==true) 处遇到异常说
NUllReferenceException 未处理。你调用的对象是空的。
什么会是更好/不同的方法,因为我认为我正在做的方式不正确。