我向服务器发出请求25秒,如果发生了什么事情,连接停止并且我得到了我的值,如果没有 - 当时间结束时我得到一个空字段的json。 在这两种情况下如何重复我的请求? 这时我每个请求都使用一个按钮。
string connect_lp = "http://" + response.response.server + "?act=a_check&key=" + response.response.key + "&ts=" + response.response.ts + "&wait=25&mode=2";
string json_lp = client.DownloadString(connect_lp);
RootObject response_lp = (RootObject)json_serializer.Deserialize(json_lp, typeof(RootObject));
答案 0 :(得分:1)
如果您只是不断地轮询数据或其他内容,请使用
while (true)
{
// code goes here
}
环。如果您只是轮询直到某个条件存在,请尝试执行do / while循环:
do {
// some stuff
} while (!condition);
do / while循环的优点在于循环的内容将始终至少执行一次(注意while检查是如何在循环的底部)。将此与传统的while循环进行对比,其中检查是第一个,因此循环体可能永远不会运行。
因此,在您的情况下,您可能需要以下内容:
string connect_lp;
string json_lp;
RootObject response_lp;
do {
connect_lp = "http://" + response.response.server + "?act=a_check&key=" + response.response.key + "&ts=" + response.response.ts + "&wait=25&mode=2";
json_lp = client.DownloadString(connect_lp);
response_lp = (RootObject)json_serializer.Deserialize(json_lp, typeof(RootObject));
// do more stuff
} while (response_ip.IsNotEmpty()); // or whatever.