336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
using System;
using System.Text;
using System.Net;
using System.IO;
namespace HttpWebRequestEx
{
class Program
{
static CookieContainer cookie = new CookieContainer(); // 로그인이 성공하였을때의 세션쿠키값을 가지고 있을 컨테이너
static void Main(string[] args)
{
string id="test"; // 로그인 아이디
string pw="test"; // 로그인 패스워드
string sendData = "id=" + id + "&pw=" + pw; // sendData의 부분은 웹사이트마다 요청값이 다릅니다. 때문에 피들러 같은 툴을 이용해서 웹페이지가 어떤 값을 원하는지 정확하게 포멧을 알아야합니다.
string result = RequestWebPage("http://www.naver.com", sendData, cookie);
Console.WriteLine(result);
}
public static string RequestWebPage(string url, string sendData, CookieContainer cook)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); // 웹 요청 객체 생성
// 헤더 정의부분 입니다. (웹페이지에 따라 요청 헤더문이 틀릴수도 있습니다만.. 보통 이런식입니다.)
req.Accept = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.04506.590; .NET CLR 3.5.20706; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
req.Method = "POST";
req.ContentLength = sendData.Length;
req.ContentType = "application/x-www-form-urlencoded";
req.KeepAlive = true;
req.CookieContainer = cook; // 중요 => 세션쿠키 (로그인이 성공하면 이 코드로 인해 세션이 유지가 됨.)
StreamWriter writer = new StreamWriter(req.GetRequestStream()); // 실제 요청
writer.Write(sendData); // 요청할때 헤더및 값을 보냄
writer.Close();
HttpWebResponse result = (HttpWebResponse)req.GetResponse(); // 요청 결과 값 받아옴.
// 요청이 성공적이면..
if (result.StatusCode == HttpStatusCode.OK)
{
Encoding encode = Encoding.GetEncoding("utf-8");
Stream strReceiveStream = result.GetResponseStream();
StreamReader reqStreamReader = new StreamReader(strReceiveStream, encode);
string strResult = reqStreamReader.ReadToEnd(); // 데이터를 읽어온다.
req.Abort();
strReceiveStream.Close();
reqStreamReader.Close();
return strResult;
}
else
{
Console.WriteLine("Error");
return "ERR";
}
}
}
}
'# IT, Computer Science > C#' 카테고리의 다른 글
App.Config XML파일을 읽고 쓰는 간단한 함수 (0) | 2012.07.14 |
---|---|
App.config (0) | 2012.01.30 |