title: HttpClient (Windows.Web.Http) working with cookies
body: <p>I am working on a Windows app and am having some issues with cookies. Please note that I am working with Windows.Web.Http, not the System namespace HttpClient.</p>
  
  <p>The API I'm working with uses an auth-header for authentication. Basically after a POST to login, I need a way to get the cookies returned and then use those cookies to perform the subsequent API calls. I posted an example of what I currently have, which succeeds. I can see the cookies in the result object. I'm just not entirely sure where to go from here / how to proceed. Thanks! Any ideas? </p>
  
  <pre><code>using MyApi.Interfaces;
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using Windows.Web.Http;
  using Newtonsoft.Json;
  using MyApi.Models.Auth;
  using MyApi.Models;
  
  namespace MyApi
  {
      public class MyService
      {
          private const string MyBaseUrl = "http://api.my.com:3000";
          private readonly HttpClient _httpClient = new HttpClient();
  
      public async Task&lt;SignInResponse&gt; AttemptLogin(string username, string password)
      {
          if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
              throw new ArgumentException("Username or password is null or empty");
  
          var uri = new Uri(string.Format("{0}/{1}", MyBaseUrl, "auth/signin"));
  
          var authSignIn = new Models.Auth.SignInRequest();
          authSignIn.Email = username;
          authSignIn.Password = password;
  
          var myObject = JsonConvert.SerializeObject(authSignIn);
  
          // I see the headers in the result object, but I'm not 
          // sure the best way to a) get them out and b) shove them into
          // all of the next calls
          var result = await _httpClient.PostAsync(uri, 
              new HttpStringContent(myObject.ToString(), 
                  Windows.Storage.Streams.UnicodeEncoding.Utf8, 
                  "application/json"));
  
          var content = await result.Content.ReadAsStringAsync();
          var successResponse = new SignInResponse();
  
          try
          {
              successResponse = JsonConvert.DeserializeObject&lt;SignInResponse&gt;(content);
          }
          catch (Exception)
          {
              var failResponse = JsonConvert.DeserializeObject&lt;ErrorResponse&gt;(content);
              throw new Exception(failResponse.message);
          }
  
          return successResponse;
      }
  }
  }
  </code></pre>