如果网络上有我的Arduino,我想连接。我正在尝试使用HTTP客户端访问Arduino Web服务器并处理JSON答案。
由于UWP中没有ping,我有哪些选择? (见:termux wiki)
一种选择是处理HTTP客户端的异常。但是在请求JSON数据之前是否还有更优雅的方法来检查连接?
答案 0 :(得分:0)
一种方法可能是使用HTTPClient执行GetAsync()并检查其中的状态代码。
根据您的时间限制,您可以等待它自然超时或通过取消令牌,以便比默认值更快地打破它。
从这里https://docs.microsoft.com/en-us/windows/uwp/networking/httpclient(稍加修改):
//Send the GET request asynchronously and retrieve the response as a string.
Windows.Web.Http.HttpResponseMessage httpResponse = new Windows.Web.Http.HttpResponseMessage();
string httpResponseBody = "";
try
{
//Send the GET request
httpResponse = await httpClient.GetAsync(requestUri);
if(httpResponse.IsSuccessStatusCode) { /* Do something with it */ }
else { /* Do fallback here */ }
}
catch (Exception ex)
{
httpResponseBody = "Error: " + ex.HResult.ToString("X") + " Message: " + ex.Message;
}