title: Unity WebRequest.downloadProgress keep coming back
body: <p>i'm trying to fetch some informations from my server, and now i wanna display the progress on a bar (Like a download bar) but the download progress keep coming and going.</p>
  
  <p><strong>This is my funcion of recovery posts</strong></p>
  
  <pre><code>public IEnumerator RecoveryPosts(string username, string first_last_post, int id_post, Action&lt;List&lt;RecoveryPostsStruct&gt;&gt; Oncomplete)
  {
      string postsJson = "";
      WWWForm form = new WWWForm();
      form.AddField("RecoveryPosts",
          "{\"username\": \"" + username + "\"," +
          "\"first_last_post\": \"" + first_last_post + "\"," +
          "\"id_post\": \"" + id_post + "\"}");
  
      UnityWebRequest www = UnityWebRequest.Post(URI_USER, form);
      Debug.Log("Execute".Tint(Color.yellow).Bold());
      FindObjectOfType&lt;PostController&gt;().StartCoroutine(ShowDownloadProgress(www));
      yield return www.Send();
      if (!www.isNetworkError)
      {
          Debug.Log("Success!\n&lt;color=#00e640&gt;&lt;b&gt;Recupera Posts&lt;/b&gt;&lt;/color&gt;\n");
          Debug.Log("Response:" + www.downloadHandler.text + "\n");
          postsJson = www.downloadHandler.text;
          if (postsJson != Util.ROUNDSTARS_ERROR)
          {
              List&lt;RecoveryPostsStruct&gt; listPostsStruct = new List&lt;RecoveryPostsStruct&gt;();
              List&lt;string&gt; list = new List&lt;string&gt;();
              RecoveryPostsJson[] posts = JsonHelper.FromJson&lt;RecoveryPostsJson&gt;(postsJson);
              foreach (RecoveryPostsJson item in posts)
              {
                  listPostsStruct.Add(new RecoveryPostsStruct(item.id_post, item.profilePicture, item.username, item.post, item.info_likes, item.qtd_comments, item.postPicture, item.date_post));
              }
              Oncomplete(listPostsStruct);
          }
      }
  </code></pre>
  
  <p><strong>and this is for show progress</strong></p>
  
  <pre><code>public IEnumerator ShowDownloadProgress(UnityWebRequest www) {
      while (!www.isDone) {
          if(LoadingScreen.instance != null)
              LoadingScreen.Fill(www.downloadProgress);
          Debug.Log(string.Format("Downloaded {0:P1}", www.downloadProgress));
          yield return new WaitForSeconds(.1f);
      }
      Debug.Log("Done");
  }
  </code></pre>
  
  <p><strong>this is what i got from console</strong>
  <a href="https://i.stack.imgur.com/AzsVd.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/AzsVd.png" alt=""></a></p>
  
  <p><strong>EDIT:</strong></p>
  
  <p>this is the new ShowDownloadProgress:</p>
  
  <pre><code>public IEnumerator ShowDownloadProgress(UnityWebRequest www) {
      while (!www.isDone) {
          if(LoadingScreen.instance != null)
              LoadingScreen.Fill(www.downloadProgress);
          Debug.Log(string.Format("Downloaded {0:P1}", www.downloadProgress));
          yield return null;
      }
      Debug.Log("Done");
  }
  </code></pre>
  
  <p>and this the new RecoveryPosts:</p>
  
  <pre><code> public IEnumerator RecoveryPosts(string username, string first_last_post, int id_post, Action&lt;List&lt;RecoveryPostsStruct&gt;&gt; Oncomplete)
  {
      string postsJson = "";
      WWWForm form = new WWWForm();
      form.AddField("RecoveryPosts",
          "{\"username\": \"" + username + "\"," +
          "\"first_last_post\": \"" + first_last_post + "\"," +
          "\"id_post\": \"" + id_post + "\"}");
  
      UnityWebRequest www = UnityWebRequest.Post(URI_USER, form);
      Debug.Log("Execute".Tint(Color.yellow).Bold());
      //Make request. Don't yield
      www.SendWebRequest(); 
      //Yield/wait in the ShowDownloadProgress until ShowDownloadProgress returns 
      yield return FindObjectOfType&lt;PostController&gt;().StartCoroutine(ShowDownloadProgress(www));
      if (!www.isNetworkError)
      {
          Debug.Log("Success!\n&lt;color=#00e640&gt;&lt;b&gt;Recupera Posts&lt;/b&gt;&lt;/color&gt;\n");
          Debug.Log("Response:" + www.downloadHandler.text + "\n");
          postsJson = www.downloadHandler.text;
          if (postsJson != Util.ROUNDSTARS_ERROR)
          {
              List&lt;RecoveryPostsStruct&gt; listPostsStruct = new List&lt;RecoveryPostsStruct&gt;();
              List&lt;string&gt; list = new List&lt;string&gt;();
              RecoveryPostsJson[] posts = JsonHelper.FromJson&lt;RecoveryPostsJson&gt;(postsJson);
              foreach (RecoveryPostsJson item in posts)
              {
                  listPostsStruct.Add(new RecoveryPostsStruct(item.id_post, item.profilePicture, item.username, item.post, item.info_likes, item.qtd_comments, item.postPicture, item.date_post));
              }
              Oncomplete(listPostsStruct);
          }
      }
      else
      {
          Debug.Log("Error: " + www.error);
      }
  }
  </code></pre>