C# darksky api:TLS需求更改,库不再工作

C# darksky api:TLS需求更改,库不再工作,c#,http,tls1.2,darksky,C#,Http,Tls1.2,Darksky,我一直在为darksky API使用这个C#库包装器: https://github.com/amweiss/dark-sky-core 在我的实现中,我每3分钟进行一次民意调查,以获得预测,我在家庭恒温器网络中使用该预测: async void GetForecast() { // https://darksky.net/dev/docs#forecast-request float Temp, DewPoint, WindSpeed, Wi

我一直在为darksky API使用这个C#库包装器:

 https://github.com/amweiss/dark-sky-core
在我的实现中,我每3分钟进行一次民意调查,以获得预测,我在家庭恒温器网络中使用该预测:

    async void GetForecast()
    {
        // https://darksky.net/dev/docs#forecast-request
        float Temp, DewPoint, WindSpeed, WindChill, Humidity, HeatIndex;
        var client = new DarkSkyService("user-api-key");
        try
        {
            Forecast fc = await client.GetWeatherDataAsync(38.329444, -87.412778);
            Temp = (float)Math.Floor(fc.Currently.Temperature);
            PublishTemp(Temp);

            // for database, get temp,  dewpoint, calculate windchill, calculate heatindex
            DewPoint = (float)fc.Currently.DewPoint;
            WindSpeed = (float)fc.Currently.WindSpeed;
            Humidity = (float)fc.Currently.Humidity;  // range: 0-1
            WindChill = (float)CalculateWindChill(Temp, WindSpeed);
            HeatIndex = (float)CalculateHeatIndex(Temp, Humidity);
            SaveToDatabase(Temp, DewPoint, WindChill, HeatIndex);

            RxForecast = true;
            if (DateTime.Now.Hour != LastForecastHour)
            {
                LatestForecast = fc;
                LastForecastHour = DateTime.Now.Hour;
                PublishForecasts();
            }
        }
        catch (Exception s) {
            RxForecast = false;
        }
     ForecastWaitTime = RxForecast ? FAST_FORECAST_CYCLE : SLOW_FORECAST_CYCLE;
    }
在一周前突然停止工作之前,它已经正常工作了大约4个月。Darksky support表示,他们最近实施了安全更新,不再支持最常见的TLS密码(引用):

我不知道我需要对这段代码做什么更改来“更新TLS”,而且我似乎无法从darksky那里获得更多信息。与此同时,我的报警系统处于停滞状态

有一件事我不明白,如果我在浏览器中键入此URL:

https://api.darksky.net/forecast/my-api-key/38.329444, -87.412778
它工作正常,并立即返回一个巨大的JSON预测字符串。在代码中使用HttpWebRequest、HttpClient或WebClient尝试此操作会导致不同的“出错”异常。总的来说,我更愿意将库用于返回的易于解释的Forecast对象

这个TLS更新是我在开发环境之外的系统级所做的吗

或者,有没有什么可以替代黑暗的方法可以让我转用呢?

你有两个选择:

1:更新正在使用的库并重新编译。该问题已在其github页面上报告:

https://github.com/jcheng31/DarkSkyApi/issues/28

2:这需要做一点工作,但是您可以将预测模块移动到Linux/Raspberry Pi,其中已经配置了TLS12。要做到这一点,您必须用Python重写例程。我验证了这种方法可以在我自己的PI网络上工作

@user3235770:谢谢你的信息!我已经开始转换到Python,但我可能会尝试修复Windows version.LMAO!看来有人忘了把答案贴在他们的代表“蓝精灵”身上。
https://github.com/jcheng31/DarkSkyApi/issues/28