コード例 #1
0
        private static void GetFromDB(object Uri)
        {
            /*
             * 데이터베이스에서 URL의 점수를 가져옴
             * 직접 사용하진 않고 위의 메소드에서 호출하는 쓰레드임
             */
            HttpWebRequest  wReq;
            Stream          PostDataStream;
            Stream          respPostStream;
            StreamReader    readerPost;
            HttpWebResponse wResp;
            StringBuilder   postParams = new StringBuilder();
            String          Url        = Convert.ToString(Uri);

            T1_Start = true;
            try
            {
                postParams.Append("url=" + Url);

                Encoding encoding = Encoding.UTF8;
                byte[]   result   = encoding.GetBytes(postParams.ToString());

                wReq               = (HttpWebRequest)WebRequest.Create(URL_GET);
                wReq.ContentType   = "application/x-www-form-urlencoded; charset=UTF-8";
                wReq.Method        = "POST";
                wReq.ContentLength = result.Length;

                PostDataStream = wReq.GetRequestStream();
                PostDataStream.Write(result, 0, result.Length);
                PostDataStream.Close();

                wResp          = (HttpWebResponse)wReq.GetResponse();
                respPostStream = wResp.GetResponseStream();
                readerPost     = new StreamReader(respPostStream, Encoding.UTF8);
                String resultPost = readerPost.ReadToEnd();
                DBScore  = Int32.Parse(resultPost);
                T1_Start = false;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                DBScore  = -1;
                T1_Start = false;
            }
        }
コード例 #2
0
        public static Boolean ReportSite(String Url, String Reporter_email)
        {
            HttpWebRequest  wReq;
            Stream          PostDataStream;
            Stream          respPostStream;
            StreamReader    readerPost;
            HttpWebResponse wResp;
            StringBuilder   postParams = new StringBuilder();

            try
            {
                postParams.Append("url=" + Url);
                postParams.Append("&reporter=" + Reporter_email);

                Encoding encoding = Encoding.UTF8;
                byte[]   result   = encoding.GetBytes(postParams.ToString());

                wReq               = (HttpWebRequest)WebRequest.Create(URL_PUT);
                wReq.ContentType   = "application/x-www-form-urlencoded; charset=UTF-8";
                wReq.Method        = "POST";
                wReq.ContentLength = result.Length;

                PostDataStream = wReq.GetRequestStream();
                PostDataStream.Write(result, 0, result.Length);
                PostDataStream.Close();

                wResp          = (HttpWebResponse)wReq.GetResponse();
                respPostStream = wResp.GetResponseStream();
                readerPost     = new StreamReader(respPostStream, Encoding.UTF8);
                String resultPost = readerPost.ReadToEnd();
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return(false);
            }
        }
コード例 #3
0
ファイル: SchoolLunch.cs プロジェクト: asm6788/SchoolLunchAPI
        public static List <학교정보> 학교정보파싱(string 검색학교)
        {
            HttpWebRequest  wReq;
            Stream          PostDataStream;
            Stream          respPostStream;
            StreamReader    readerPost;
            HttpWebResponse wResp;
            StringBuilder   postParams = new StringBuilder();
            List <학교정보>     학교정보들      = new List <학교정보>();
            string          학교이름       = "";
            string          학교코드       = "";
            string          학교주소       = "";
            string          학교홈페이지     = "";
            학교종류            초중고        = 학교종류.None;

            //SEARCH_GS_HANGMOK_CD=&SEARCH_GS_HANGMOK_NM=&SEARCH_SCHUL_NM=%BF%F9%B0%E8%C1%DF&SEARCH_GS_BURYU_CD=&SEARCH_KEYWORD=%BF%F9%B0%E8%C1%DF
            //보낼 데이터 추
            postParams.Append("SEARCH_GS_HANGMOK_CD=");
            postParams.Append("&SEARCH_GS_HANGMOK_NM=");
            postParams.Append("&SEARCH_SCHUL_NM=" + HttpUtility.UrlEncode(검색학교, Encoding.GetEncoding("euc-kr")));
            postParams.Append("&SEARCH_GS_BURYU_CD=");
            postParams.Append("&SEARCH_KEYWORD=" + HttpUtility.UrlEncode(검색학교, Encoding.GetEncoding("euc-kr")));

            //Encoding 정의 및 보낼 데이터 정보를 Byte배열로 변환(String -> Byte[])
            Encoding encoding = Encoding.UTF8;

            byte[] result = encoding.GetBytes(postParams.ToString());
            //<p class="School_Division">
            //보낼 곳과 데이터 보낼 방식 정의
            wReq               = (HttpWebRequest)WebRequest.Create("http://www.schoolinfo.go.kr/ei/ss/Pneiss_f01_l0.do");
            wReq.Method        = "POST";
            wReq.ContentType   = "application/x-www-form-urlencoded";
            wReq.ContentLength = result.Length;

            string temp;

            //데이터 전송
            PostDataStream = wReq.GetRequestStream();
            PostDataStream.Write(result, 0, result.Length);
            PostDataStream.Close();
            wResp          = (HttpWebResponse)wReq.GetResponse();
            respPostStream = wResp.GetResponseStream();
            readerPost     = new StreamReader(respPostStream, Encoding.Default);
            String resultPost = readerPost.ReadToEnd();

            //     Console.WriteLine(resultPost);
            while (true)
            {
                resultPost = resultPost.Remove(0, resultPost.IndexOf("School_Name")).Remove(0, 76);
                temp       = resultPost;
                학교이름       = resultPost = resultPost.Remove(resultPost.IndexOf("<"), resultPost.Length - resultPost.IndexOf("<"));
                if (!isContainHangul(학교이름))
                {
                    break;
                }
                resultPost = temp;
                resultPost = resultPost.Remove(0, resultPost.IndexOf("School_Division"));
                resultPost = resultPost.Remove(0, 45);
                resultPost = resultPost.Remove(0, resultPost.IndexOf("mapD_Class"));
                resultPost = resultPost.Remove(0, 16);
                temp       = resultPost;
                resultPost = resultPost.Remove(resultPost.IndexOf("</span>"), resultPost.Length - resultPost.IndexOf("</span>"));
                if (resultPost == "초")
                {
                    초중고 = 학교종류.초등학교;
                }
                else if (resultPost == "중")
                {
                    초중고 = 학교종류.중학교;
                }
                else if (resultPost == "고")
                {
                    초중고 = 학교종류.고등학교;
                }
                resultPost = temp;
                resultPost = resultPost.Remove(0, resultPost.IndexOf("searchSchul")).Remove(0, 12);
                temp       = resultPost;
                resultPost = resultPost.Remove(resultPost.IndexOf(")"), resultPost.Length - resultPost.IndexOf(")")).Replace("'", "");
                학교코드       = resultPost;
                resultPost = temp;
                resultPost = resultPost.Remove(0, resultPost.IndexOf("학교주소")).Remove(0, 11);
                temp       = resultPost;
                resultPost = resultPost.Remove(resultPost.IndexOf("</li>"), resultPost.Length - resultPost.IndexOf("</li>"));
                학교주소       = resultPost;
                resultPost = temp;
                //  Console.WriteLine(resultPost);
                resultPost = resultPost.Remove(0, resultPost.IndexOf("홈페이지")).Remove(0, 38);
                temp       = resultPost;
                resultPost = resultPost.Remove(resultPost.IndexOf("target"), resultPost.Length - resultPost.IndexOf("target"));
                resultPost = resultPost.Remove(resultPost.Length - 2, 1);
                학교홈페이지     = resultPost;
                resultPost = temp;
                학교정보들.Add(new 학교정보(학교홈페이지, 학교주소, 학교코드, 학교이름, 초중고));
            }
            return(학교정보들);
        }