로또당첨번호API/로또추첨번호/로또API/로또페이지개발로또당첨번호API사용법/로또추첨번호/로또API/로또페이지개발/로또API사용방법/로또페이지개발하는법/로또API 사용하는 법

 

로또 관련 페이지를 만들기 위해서 제일 처음 찾는 것이 바로 로또API일 것이다.

여기저기 뒤져 보다가 당첨결과를 확인 할 수 있는 API를 발경하였다. 

개인적인 공부용으로 로또 관련페이지를 만들었는데, 요긴하게 사용하였다.

물론 아래 API외에도 웹크롤링을 사용해서 다른 정보들도 가져오긴 했지만, 우선 기본이 되는 아래 API부터 사용해보자!

 

사용하는 소스를 그대로 올렸는데, 사실 요청URL부분만 보면 될것 같다.

각자의 스타일에 맞게 잘 사용해봅시다!

 

1. API호출 및 저장

public void InsertLottoNumber(string targetNumber)
{
    DBConn dbSql = new DBConn();
    StringBuilder sb = new StringBuilder();
    DataSet ds = new DataSet();
    Util util = new Util()
    try
    {
    	//이미 등록된 회차인지 확인
        sb.Append(" select * from [데이터베이스스키마] where drwNo=@drwNo ");
        sb.Replace("@drwNo", targetNumber);
        ds = dbSql.ExecuteWithDataSet(sb.ToString())
        
        //등록되지 않은 회차이면 API를 호출한다.
        if (util.ChkDsIsNull(ds))
        {
        	//요청URL-> 사실 이것만 알면 된다.
            string URL = "https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=" + targetNumber
            
            using (var webClient = new System.Net.WebClient())
            {
                var myJsonString = webClient.DownloadString(URL)
                var jo = JObject.Parse(myJsonString)
                
                //데이터베이스에 저장
                if(jo.GetValue("returnValue").ToString() != "fail")
                {
                    string drwNo = jo.GetValue("drwNo").ToString();
                    string totSellamnt = jo.GetValue("totSellamnt").ToString();
                    string returnValue = jo.GetValue("returnValue").ToString();
                    string drwNoDate = jo.GetValue("drwNoDate").ToString();
                    string firstWinamnt = jo.GetValue("firstWinamnt").ToString();
                    string firstPrzwnerCo = jo.GetValue("firstPrzwnerCo").ToString();
                    string drwtNo1 = jo.GetValue("drwtNo1").ToString();
                    string drwtNo2 = jo.GetValue("drwtNo2").ToString();
                    string drwtNo3 = jo.GetValue("drwtNo3").ToString();
                    string drwtNo4 = jo.GetValue("drwtNo4").ToString();
                    string drwtNo5 = jo.GetValue("drwtNo5").ToString();
                    string drwtNo6 = jo.GetValue("drwtNo6").ToString();
                    string bnusNo = jo.GetValue("bnusNo").ToString()
                    sb.Clear();
                    sb.AppendLine("insert into [데이터베이스스키마]  ");
                    sb.AppendLine("values( ");
                    sb.AppendLine(drwNo + ",");
                    sb.AppendLine(totSellamnt + ",");
                    sb.AppendLine("'" + returnValue + "',");
                    sb.AppendLine("'" + drwNoDate + "',");
                    sb.AppendLine(firstWinamnt + ",");
                    sb.AppendLine(firstPrzwnerCo + ",");
                    sb.AppendLine(drwtNo1 + ",");
                    sb.AppendLine(drwtNo2 + ",");
                    sb.AppendLine(drwtNo3 + ",");
                    sb.AppendLine(drwtNo4 + ",");
                    sb.AppendLine(drwtNo5 + ",");
                    sb.AppendLine(drwtNo6 + ",");
                    sb.AppendLine(bnusNo);
                    sb.AppendLine(")")
                    dbSql.ExcuteNonQuery(sb.ToString())
            
            }
        }
    }
    catch
    {
        //string tmp = ex.ToString();
    }
    finally
    {
        dbSql.Close();
        dbSql = null;
    
}

 

 

2. API호출시 리턴값 확인 

 

리턴결과

ASP.NET파일쓰기/C#TEXT파일/C#파일읽기쓰기방법

 

개발을 하다보면 텍스트 파일에 간단하게 로그를 남기고 싶은 경우가 있다. 

그럴 경우에 아래와 같이 날짜별로 로그파일을 생성해서 남기면 좋다.

경로등은 편하게 사용하면 된다. 

여기서 중요한 부분은 using(StreamWriter file = new StreamWriter(fullPath, true)) 부분이다.

C#에서 using을 사용하는 경우는 별도로 close를 안해줘도 메모리를 반환해주기 때문이다.

 

어쨌든 간단하게 로그를 남기고 확인 할 수 있다.

나의 경우에는 WebAPI를 구성하는데 있어서 클라이언트 개발자가 제대로 호출을 했는지, 파라미터가 제대로 넘어왔는지 확인하기 위해서 아래 함수를 사용하였다.

그럼 모두 즐코딩하세요!

 

public void WriteDateLog(string project, string logGub, string text)
{
    string writeTime = DateTime.Now.ToString("yyyyMMdd HHmmss")
    string fullPath = @"D:\log\" + project + @"\" + DateTime.Now.ToString("yyyyMMdd") + ".txt"
    using (StreamWriter file = new StreamWriter(fullPath, true))
    {
        file.WriteLine(string.Format("{0} :{1}: {2}", writeTime, logGub, text));
    }
}

 

 

DB에서 데이터를 불러와서 뿌려주는 방법은 여러가지가 있지만, asp.net에서는 repeater가 자주 사용된다.

webform 방식으로 구현된 페이지에서 repeater를 사용하는 방법이다.

 

aspx 구현

//aspx 구현부분 
<asp:Repeater ID="rptList" runat="server" onitemdatabound="rptList_ItemDataBound" >
<ItemTemplate>
                <tr>
                <td><%# DataBinder.Eval(Container.DataItem, "SEQNO")%></td>
                <td class="alignL">
                <a href=''#''  onclick="fnView(''<%# DataBinder.Eval(Container.DataItem, "SEQNO")%>'',''<%=ViewData["PAGE"] %>'',''<%=ViewData["SEARCH_TYPE"] %>'',''<%=ViewData["SEARCH_VALUE"] %>'');">
                <%# DataBinder.Eval(Container.DataItem, "SUBJECT").ToString() %>
                </td>
                <td><%#DataBinder.Eval(Container.DataItem, "WDATE").ToString().Length >= 8 ? DataBinder.Eval(Container.DataItem, "WDATE").ToString().Substring(0, 4) + "-" + DataBinder.Eval(Container.DataItem, "WDATE").ToString().Substring(4, 2) + "-" + DataBinder.Eval(Container.DataItem, "WDATE").ToString().Substring(6, 2) : DataBinder.Eval(Container.DataItem, "WDATE").ToString()%>   </td>
                <td><asp:Label ID="isFile" runat="server"></asp:Label></td>
                <td><%# DataBinder.Eval(Container.DataItem, "VISIT")%></td>
                </tr>                
</ItemTemplate>
</asp:Repeater>

 

aspx.cs 구현

public void InitData(){
    //cs단에서 바인딩 해주는 부분 
    DataTable dt = new DataTable();
    dt = getList(); //각자 바인딩이 필요한 데이터를 불러온다.
    rptList.DataSource = dt.DefaultView;
    rptList.DataBind();
}

//리피터에 바인딩 하면서 데이터를 셋팅 해주는 부분
//db데이터를 그대로 노출하는 경우도 있지만, 셋팅이 필요한 경우가 많기 때문에 자주 사용한다.
protected void rptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemIndex != -1)
    {         
        Label lb = (Label)e.Item.FindControl("isFile");
        string FileName = ((System.Data.DataRowView)e.Item.DataItem)["FILENAME"].ToString().Trim();
        if (FileName.Length > 0)
        {
            lb.Text = @"<img src=""/images/icon/icon_disk.gif"" >";
        }
    }
}

SNS 공유와 더불어 자주 사용되는 링크복사입니다.

<input type="hidden" id="hidUrl" value="gyunbox.tistory.com"/>
<script>
	//주소복사
     function TourUrlCopy() {
        var addrTxt = document.getElementById("hidUrl").value;
        //        var isIE = (document.all)?true:false;
        
		var isIE = false;
		var agent = navigator.userAgent.toLowerCase();
		if ( (navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1) || (agent.indexOf("msie") != -1) ) {
			isIE = true;
		}

        if(isIE){
        if(confirm("이 글의 주소를 클립보드에 복사하시겠습니까?"))
            window.clipboardData.setData("Text",addrTxt);
        }else{
            temp = prompt("Ctrl+C를 눌러 주소를 클립보드로 복사하세요.",addrTxt);
        }
     }
</script>

+ Recent posts