私は現在、内部 API とビジュアル スタジオを使用しています (どちらも新しい)。ユーザー情報を含む JSON を取得するサーバーに GET 要求を送信しようとしています。予想される JSON 応答のフィールドの 1 つは 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);
これに関する問題は、より長い時間待機する必要があることです。所要時間は可変であるため、より長いスリープ時間を設定する必要があります。また、10 秒では不十分な場合もあります。その場合、do while ループが 2 回目にループすると、while(isConnected==true) で例外が発生します。
NUllReferenceException は処理されませんでした。オブジェクト参照がオブジェクト インスタンスに設定されていません。
私がやっている方法が正しいとは思わないので、これを行うためのより良い/別の方法は何でしょうか。