티스토리 뷰

프로그래밍

C# HTTP Post Request

두덕리온라인 2016. 4. 6. 01:04
728x90
반응형

using System;
using System.Net;
using System.Web;
using System.Collections;
using System.IO;

// No .NET4 Client Profile
// Add reference System.Web
namespace WebRequestExample
{
    class WebPostRequest
    {
        WebRequest theRequest;
        HttpWebResponse theResponse;
        ArrayList theQueryData;

        public WebPostRequest(string url)
        {
            theRequest = WebRequest.Create(url);
            theRequest.Method = "POST";
            theQueryData = new ArrayList();
        }

        public void Add(string key, string value)
        {
            theQueryData.Add(String.Format("{0}={1}", key, System.Web.HttpUtility.UrlEncode(value)));
        }

        public string GetResponse()
        {
            // Set the encoding type
            theRequest.ContentType = "application/x-www-form-urlencoded";

            // Build a string containing all the parameters
            string Parameters = String.Join("&", (String[])theQueryData.ToArray(typeof(string)));
            theRequest.ContentLength = Parameters.Length;

            // We write the parameters into the request
            StreamWriter sw = new StreamWriter(theRequest.GetRequestStream());
            sw.Write(Parameters);
            sw.Close();

            // Execute the query
            theResponse = (HttpWebResponse)theRequest.GetResponse();
            StreamReader sr = new StreamReader(theResponse.GetResponseStream());
            return sr.ReadToEnd();
        }

    }

    class MainClass
    {
        public static void Main(string[] args)
        {
            //WebPostRequest myPost = new WebPostRequest("http://www.dijksterhuis.org/test/post.php");
            WebPostRequest myPost = new WebPostRequest("http://www.naver.com");
            myPost.Add("keyword", "void");
            myPost.Add("data", "hello&+-[]");
            Console.WriteLine(myPost.GetResponse());
        }
    }
}

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday