Я собираюсь изменить скрипт, который я нашел в Rosetta Code, который будет проверять MAC-адреса по отличному API на http://api.macvendors.com.
Я могу сделать это на Python и Go без проблем, нов C # (потому что он должен запускаться с рабочего стола через Icon), я сталкиваюсь с проблемами ... не в последнюю очередь является тот факт, что код не имеет большого смысла для меня.Я пропустил (отсюда) строки «Использование ...»
class Program
{
static async Task<string> LookupMac(string MacAddress)
{
var uri = new Uri("http://api.macvendors.com/" + WebUtility.UrlEncode(MacAddress));
using (var wc = new HttpClient())
return await wc.GetStringAsync(uri);
}
static void Main(string[] args)
{
foreach (var mac in new string[] { "88:53:2E:67:07:BE", "FC:FB:FB:01:FA:21", "D4:F4:6F:C9:EF:8D" })
Console.WriteLine(mac + "\t" + LookupMac(mac).Result);
Console.ReadLine();
}
}
Я падаю на всю асинхронную сторону вещей!Когда я пытаюсь запустить код, здесь появляется сообщение об ошибке от Vis Studio:
System.AggregateException
HResult=0x80131500
Message=One or more errors occurred.
Source=mscorlib
StackTrace:
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
at GetMacVend.Program.Main(String[] args) in C:\Users\wildm\VisC#\GetMacVend\GetMacVend\Program.cs:line 24
Inner Exception 1:
TaskCanceledException: A task was canceled.