title: Caching issue with WebClient/HttpClient
body: <p>I'm developing a code to poll a Bitstamp exchange ticker every 30 seconds. This is a code I have:</p>
  
  <pre><code>public IObservable&lt;string&gt; Stream(Uri way, WebClient wc)
      {
          Func&lt;IObserver&lt;string&gt;, Task&gt; Fun = async Observer =&gt;
          {
              var res = await wc.DownloadStringTaskAsync(way);
              Observer.OnNext(value: res);
          };
  
          return Observable.Create&lt;string&gt;(Fun);
      }
  
  public IObservable&lt;string&gt; GetDelay(int secs)
      {
          var exe = TimeSpan.FromSeconds(secs);
          return Observable.Empty&lt;string&gt;("x").Delay(exe);
      }
  
  Stream(new Uri("https://bitstamp.net/api/ticker"), new WebClient { }).Concat(GetDelay(30))
      .Repeat(5).Subscribe(res =&gt; Debug.WriteLine("got result: {0}", res));
  </code></pre>
  
  <p>The problem is that <code>WebClient</code> (and <code>HttpClient</code>, too) both return cached results after the first call, it can be seen by the same timestamp:  </p>
  
  <p><code>got result: {"high": "690.00", "last": "645.10", "timestamp": "1387715532" ... }</code><br>
  <code>got result: {"high": "690.00", "last": "645.10", "timestamp": "1387715532" ... }</code><br>
  ...</p>
  
  <p>Even after turning the networks off they return the result normally so obviously they cache it somewhere. Adding something like "?cache=random" does not work because request parameters are not allowed for ticker on Bitstamp. Setting <code>Headers[HttpRequestHeader.CacheControl] = "no-cache"</code> for <code>WebRequest</code> does not work either.  </p>
  
  <p>How can I fix this weird caching behavior?</p>