Create HTTP post request and receive response using C# console application

前端 未结 5 624
抹茶落季
抹茶落季 2020-11-29 04:11

I need to post data to a URL (https://somesite.com) to download file in responseStrem based on the parameters I posted. How can I do that using a C# console application?

5条回答
  •  失恋的感觉
    2020-11-29 04:52

    For this you can simply use the "HttpWebRequest" and "HttpWebResponse" classes in .net.

    Below is a sample console app I wrote to demonstrate how easy this is.

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.IO;
    
    namespace Test
    {
        class Program
        {
            static void Main(string[] args)
            {
                string url = "www.somewhere.com";       
                string fileName = @"C:\output.file";
    
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Timeout = 5000;
    
                try
                {
                    using (WebResponse response = (HttpWebResponse)request.GetResponse())
                    {
                        using (FileStream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write))
                        {
                            byte[] bytes = ReadFully(response.GetResponseStream());
    
                            stream.Write(bytes, 0, bytes.Length);
                        }
                    }
                }
                catch (WebException)
                {
                    Console.WriteLine("Error Occured");
                }
            }
    
            public static byte[] ReadFully(Stream input)
            {
                byte[] buffer = new byte[16 * 1024];
                using (MemoryStream ms = new MemoryStream())
                {
                    int read;
                    while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        ms.Write(buffer, 0, read);
                    }
                    return ms.ToArray();
                }
            }
        }
    }
    

    Enjoy!

提交回复
热议问题