using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace WebApiCall
{
    public class CookieAwareWebClient : WebClient
    {

        public void Login(string loginPageAddress, string loginData)
        {
            CookieContainer container;

            var request = (HttpWebRequest)WebRequest.Create(loginPageAddress);

            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            var buffer = Encoding.ASCII.GetBytes(loginData.ToString());
            request.ContentLength = buffer.Length;
            var requestStream = request.GetRequestStream();
            requestStream.Write(buffer, 0, buffer.Length);
            requestStream.Close();

            container = request.CookieContainer = new CookieContainer();

            var response = request.GetResponse();
            response.Close();
            CookieContainer = container;

            request.ContentType = "application/json; charset=utf-8";
            request = (HttpWebRequest)WebRequest.Create("http://localhost:55555/Services/Northwind/Customer/List");
            request.CookieContainer = container;
            WebResponse cresponse = request.GetResponse();
            using (Stream s = cresponse.GetResponseStream())
            using (StreamReader sr = new StreamReader(s))
                File.WriteAllText("code.html", sr.ReadToEnd());


        }

        public CookieAwareWebClient(string loginPageAddress, string loginData)
        {
            Login(loginPageAddress, loginData);
        }

        public CookieAwareWebClient(CookieContainer container)
        {
            CookieContainer = container;
        }

        public CookieAwareWebClient()
          : this(new CookieContainer())
        { }

        public CookieContainer CookieContainer { get; private set; }

        protected override WebRequest GetWebRequest(Uri address)
        {
            var request = (HttpWebRequest)base.GetWebRequest(address);
            request.CookieContainer = CookieContainer;
            return request;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {




            var loginPage = "http://localhost:55555/Account/Login";

            string postData = "Username=admin";
            postData += "&Password=serenity";
            var loginData = new NameValueCollection
              {
                { "Username", "admin" },
                { "Password", "serenity" },

              };
            var client = new CookieAwareWebClient(loginPage, postData);
        }
    }
}

results matching ""

    No results matching ""