* VBNET Json Parsing 을 이용한 로또 (Lotto) 당첨번호 읽어 오기 예제...
전체 소스 코드
Form1.vb
Imports System.Net
Imports System.IO
Imports System.Net.Json
Public Class Form1
Private Function GetHttpLottoString(ByVal strUri As String) As String
Dim strResponseText As String = String.Empty
Dim request As HttpWebRequest = CType(WebRequest.Create(strUri), HttpWebRequest)
request.Method = "GET"
'웹리퀘스트 타임아웃
request.Timeout = 20 * 1000 ' 20초
'request.Headers.Add("Authorization", "BASIC SGVsbG8="); // 헤더 추가 방법
'응답 받기...
Using hwr As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
'응답이 정상적으로 이루어 졌으면...
If hwr.StatusCode = HttpStatusCode.OK Then
Dim respStream As Stream = hwr.GetResponseStream()
Using sr As StreamReader = New StreamReader(respStream)
strResponseText = sr.ReadToEnd()
End Using
Else
strResponseText = ""
End If
End Using
Return strResponseText
End Function
Private Function IsNullString(ByVal str As String) As Boolean
Return String.IsNullOrEmpty(str)
End Function
Private Function IsInt(ByVal ob As Object) As Integer
If ob Is Nothing Then
Return 0
End If
Dim iCheck As Integer = 0
Dim bCheck As Boolean = Integer.TryParse(ob.ToString(), iCheck)
If Not bCheck Then
Return 0
End If
Return iCheck
End Function
Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
'빈값이거나 null 값이면...
If IsNullString(textBox1.Text) Then
MessageBox.Show("빈 값일 순 없습니다.")
Return
End If
'숫자가 아니면...
If IsInt(textBox1.Text) = 0 Then
MessageBox.Show("숫자만 입력 해 주세요.")
Return
End If
'로또 회차 넘버 불러오기...
Dim strReturnValue As String = GetHttpLottoString("https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=" + textBox1.Text)
If strReturnValue = "" Then
MessageBox.Show("Lotto Number 불러오기 실패...")
Return
End If
'Json 으로 바꾸기...
Dim jtr As JsonTextParser = New JsonTextParser()
Dim jo As JsonObject = jtr.Parse(strReturnValue)
Dim jac As JsonObjectCollection = CType(jo, JsonObjectCollection)
'불러오기가 성공 하면...
textBox2.Text = ""
If jac("returnValue").GetValue().ToString() = "success" Then
'텍스트 박스에 뿌려주기...
textBox2.Text += "로또 당첨일: " + jac("drwNoDate").GetValue().ToString() + System.Environment.NewLine
textBox2.Text += "로또 회차: " + jac("drwNo").GetValue().ToString() + System.Environment.NewLine + System.Environment.NewLine
textBox2.Text += "1등 당첨금: " + jac("firstWinamnt").GetValue().ToString() + System.Environment.NewLine
textBox2.Text += "1등 당첨 인원: " + jac("firstPrzwnerCo").GetValue().ToString() + " 명" + System.Environment.NewLine
textBox2.Text += "누적 상금: " + jac("totSellamnt").GetValue().ToString() + System.Environment.NewLine + System.Environment.NewLine
textBox2.Text += "당첨 번호: " + jac("drwtNo1").GetValue().ToString() + _
"," + jac("drwtNo2").GetValue().ToString() + _
"," + jac("drwtNo3").GetValue().ToString() + _
"," + jac("drwtNo4").GetValue().ToString() + _
"," + jac("drwtNo5").GetValue().ToString() + _
"," + jac("drwtNo6").GetValue().ToString() + System.Environment.NewLine
textBox2.Text += "보너스 번호: " + jac("bnusNo").GetValue().ToString() + System.Environment.NewLine
End If
End Sub
Private Sub textBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles textBox1.KeyDown
'사용자가 엔터키를 입력 하면...
If e.KeyCode = Keys.Enter Then
'버튼 이벤트 함수 불러오기
button2_Click(Nothing, Nothing)
End If
End Sub
End Class
* 예제 결과
결과 화면
↓↓↓↓↓ 참조 문서 ↓↓↓↓↓
https://kdsoft-zeros.tistory.com/98
https://kdsoft-zeros.tistory.com/77
'VB.NET Programming' 카테고리의 다른 글
[VBNET] [API] 다른 응용 프로그램 실행 : ShellExecuteA () (0) | 2019.12.19 |
---|---|
[VBNET] Params 키워드를 이용한 가변 전달 인자 예제 (0) | 2019.12.16 |
[VBNET] Json File Write & Read 예제... (0) | 2019.12.07 |
[VBNET] 반올림 Math.Round() 예제 (0) | 2019.11.28 |
[VBNET] Redim Preserve 및 배열 크기(Size) 조절 (0) | 2019.11.26 |