title: Make WebClient().DownloadString async
body: <p>How i can make this code non-blocking <strong>async</strong> so it doesn't block the UI? do i need to use another library ?</p>
  <pre><code>public static double GetRsi(string symbol1, string interval1, string period1)
              {
                  //API KEY FROM alphavantage.co
                  string API_KEY = &quot;xxxxxxx&quot;;
                  
                  StringBuilder urlBuilder = new StringBuilder();
                  urlBuilder.Append($&quot;https://www.alphavantage.co/&quot;);
                  urlBuilder.Append($&quot;query?function=RSI&amp;symbol={symbol1}&amp;interval={interval1}&amp;time_period={period1}&amp;series_type=open&amp;apikey={API_KEY}&quot;);
                  string jsonData = new WebClient().DownloadString(urlBuilder.ToString());
      
      
                  var machine = JsonConvert.DeserializeObject&lt;AlphavantageData&gt;(jsonData);
                  var _RSI = machine.TechnicalAnalysisRsi.Last().Value.Rsi;
                  return _RSI; 
              }
  </code></pre>