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; } }
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); } }
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(학교정보들); }