如果当前网络处于未连接状态,直接使用HttpClient中的PostAsync等方法发起数据请求时,会抛出异常。
所以,在进行网络的数据交互之前,应当进行网络状态的判断。如果网络可用,则再执行网络数据请求的操作。
在Windows8 API中可以通过NetworkConnectivityLevel这接口获取网络的状态。
具体代码如下:
/// <summary>
/// 提供与网络相关的数据设置或获取功能
/// </summary>
public class NetworkHelper
{
public static bool IsConnectedToInternet()
{
bool isConnected = false;
ConnectionProfile cp = NetworkInformation.GetInternetConnectionProfile();
if (cp != null)
{
NetworkConnectivityLevel cl = cp.GetNetworkConnectivityLevel();
isConnected = (cl == NetworkConnectivityLevel.InternetAccess);
}
return isConnected;
}
}
使用的时候,可以这样实现:
HttpClient httpClient = new HttpClient();
if (NetworkHelper.IsConnectedToInternet())
{
HttpResponseMessage response = await httpClient.PostAsync(new Uri(serverUri), new StringContent(postData));
if (response.StatusCode == HttpStatusCode.OK)
{
// TODO: 处理返回的结果
}
// ...
}
分享到:
相关推荐
第1章 Windows应用程序开发入门 1 1.1 第一个实例程序 1 1.1.1 start.exe 1 1.1.2 Windows API 2 1.1.3 程序入口函数 2 1.1.4 start.c代码分析 2 1.2 编译代码 3 1.2.1 安装Visual Studio 3 1.2.2 ...
如果你准备清空数据,则可以改成你想要的目录,请你据实际情况修改。 二、数据库选择: 1、如果选择Access数据库,打开 WEB-INF\classes\DBConfig.property 文件,修改 DBType 的值为0(即DBType=0;这也是默认值),...
取错误文本()”返回的文本是UTF-8编码(应是GB18030编码)。 -------------------------------------------------------------------------------- 易语言5.0 相对于易语言4.x更新说明(2010/02/01): 增加...
haisanidsV1.2-网络连接监控 IP实时数据。自绘了很多控件。自绘CTabCtrl、CToolBar、CMenu、CButton、CHtmlCtrl、CListCtrl。 1.初始状态只监听连接,不捕获IP数据 2.鼠标右击列表选择或取消监控某端口数据 3.为防止...
第1章 Windows应用程序开发入门 1 1.1 第一个实例程序 1 1.1.1 start.exe 1 1.1.2 Windows API 2 1.1.3 程序入口函数 2 1.1.4 start.c代码分析 2 1.2 编译代码 3 1.2.1 安装Visual Studio 3 1.2.2 ...
“网络读取超时(秒)” - 设置TCP连接每次读取数据的最长时间,超时数据将被忽略 “跳过针对主机的破坏性脚本” - 如标题所述 “检测脚本间的依赖关系” - NASL脚本间相互是有关联的,比如一个脚本先获取服务的...
“使用NMAP判断远程操作系统” - X-Scan使用SNMP、NETBIOS和NMAP综合判断远程操作系统类型,若NMAP频繁出错,可关闭该选项。 “显示详细信息” - 主要用于调试,平时不推荐使用该选项。 “插件设置”模块: 该...
第13章 开发Windows内核Hook 186 13.1 XP下Hook系统调用IoCallDriver 187 13.2 Vista下IofCallDriver的跟踪 189 13.3 Vista下inline hook 193 13.3.1 写入跳转指令并拷贝代码 193 13.3.2 实现中继函数 ...
第13章 开发Windows内核Hook 186 13.1 XP下Hook系统调用IoCallDriver 187 13.2 Vista下IofCallDriver的跟踪 189 13.3 Vista下inline hook 193 13.3.1 写入跳转指令并拷贝代码 193 13.3.2 实现中继函数 ...
93. 如何判断计算机是否已经连接到网络 362 94. 如何通过编程运行拨号网络连接 364 95. 如何实现Ping操作 369 第8章 客户/服务器编程 373 96. 如何进行基于文件服务器的多用户编程 374 97. 如何建立ODBC数据...
- 打开脚本选择窗口,通过风险级别、检测手段、漏洞类型等分类方式定制脚本列表 “脚本运行超时(秒)” - 设置一个脚本可运行的最长时间,超时后将被强行终止 “网络读取超时(秒)” - 设置TCP连接每次...
1.5 几种综合网络服务器系统的安装 14 1.5.1 XAMPP 14 1.5.2 WAMP 16 1.5.3 Appserv 17 1.5.4 EasyPHP 18 1.5.5 VertrigoServ 19 1.6 几种开发工具的介绍 20 1.6.1 Vi及Vim 20 1.6.2 Eclipse+PHPEclipse插件 21 ...
我们先进行一个简单的纯SIP信令(不带语音连接建立)的UAC的SIP终端的程序开发的试验(即一个只能作为主叫不能作为被叫的的SIP软电话模型),我们创建一个MFC应用程序,对话框模式,照上面的说明,...
“使用NMAP判断远程操作系统” - X-Scan使用SNMP、NETBIOS和NMAP综合判断远程操作系统类型 ,若NMAP频繁出错,可关闭该选项。 “显示详细信息” - 主要用于调试,平时不推荐使用该选项。 “插件设置”模块: ...
第13章 开发Windows内核Hook 186 13.1 XP下Hook系统调用IoCallDriver 187 13.2 Vista下IofCallDriver的跟踪 189 13.3 Vista下inline hook 193 13.3.1 写入跳转指令并拷贝代码 193 13.3.2 实现中继函数 ...
第二章 PT80 开发入门 .................................................................................................................................. 2 开发环境搭建 ....................................
一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...
一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...