C# 我怎样才能得到;在c“桌面应用程序”中调用API时使用了多少网络数据(移动或WiFi);

C# 我怎样才能得到;在c“桌面应用程序”中调用API时使用了多少网络数据(移动或WiFi);,c#,networking,mobile,wifi,system.net,C#,Networking,Mobile,Wifi,System.net,如何获取“在c#桌面应用程序中调用API时使用了多少网络数据(移动或WiFi)” 我想知道当我调用API服务时,如何获得总使用数据 我已经完成了以下代码: if(!NetworkInterface.GetIsNetworkAvailable()) 返回; NetworkInterface[]接口 =NetworkInterface.GetAllNetworkInterfaces(); foreach(接口中的网络接口) { WriteLine(“发送的字节:{0}”, ni.GetIPv4Sta

如何获取“在c#桌面应用程序中调用API时使用了多少网络数据(移动或WiFi)” 我想知道当我调用API服务时,如何获得总使用数据

我已经完成了以下代码:

if(!NetworkInterface.GetIsNetworkAvailable())
返回;
NetworkInterface[]接口
=NetworkInterface.GetAllNetworkInterfaces();
foreach(接口中的网络接口)
{
WriteLine(“发送的字节:{0}”,
ni.GetIPv4Statistics().BytesSent);
WriteLine(“收到的字节:{0}”,
ni.GetIPv4Statistics().BytesReceived);
lblCarrierCharge.Text=“接收的字节数:”+ni.GetIPv4Statistics().BytesReceived;
}
API调用

HttpWebRequest-request=(HttpWebRequest)WebRequest.Create(cloudEndpoint);
request.Method=“Get”;
long inputLength=request.ContentLength;
长输出长度=0;
字符串responseContent=“”;
DateTime beginTimestamp=DateTime.Now;
HttpWebResponse=(HttpWebResponse)request.GetResponse();

计算每次呼叫接收的总字节数。您需要保存
.GetIPv4Statistics().BytesReceived
的当前值,然后在调用后执行相同的调用,并将新值减去上一个值

int-previousNetworkBytesSent=0;
foreach(接口中的网络接口)
{
previousNetworkBytesSent+=ni.GetIPv4Statistics().BytesReceived;
}
//在这里执行您的呼叫
int newNetworkBytesSent=0;
foreach(接口中的网络接口)
{
newNetworkBytesSent+=ni.GetIPv4Statistics().BytesReceived;
}
int TOTALLBYTESSUSED=新网络BYTESSENT-以前的网络BYTESSENT;

请检查数据类型是否合适,并随时对此进行优化。

那么您的代码有什么问题?它现在在做什么我想计算一下当我使用
HttpWebResponse=(HttpWebResponse)request.GetResponse()调用api时使用了多少数据
@devestation请检查我的代码,我已经更新了它收到的
字节是否返回0?抛出异常?是空的吗?我认为您应该做的是保存这些属性的当前值。然后根据你的要求,再把它们取出来,然后减去。@devestation谢谢,这对我帮助很大