일상다반사

사물함 신청 프로그램

루카스강 2014. 9. 15. 11:20

어제 사물함 신청하는 날이었다.

 

경쟁이 치열해서 (사실 계속 새로고침 하는 것이 귀찮아서 ) 프로그램을 돌리려고 했다,

 

 

사물함 신청 사이트를 분석해보니 jsp 파일에서 세션을 생성해주고 세션에서 변수의 값을 복사해오는 방식으로 등록이 되는 것 같았다.

 

네트워크 쪽은 잘 모르니 url 로 클릭해서 들어가는 값들을 연속적으로 post 해주면 될 것 같았다.

 

순서는 step1.jsp   -> step2.jsp   -> step3.jsp   -> cabin.do 파일 순서였다.

 

 

step1 에서는 어떤 일을 하는지는 잘 모르겠는데 아마 학생회비 납부 여부를 체크하는 것 같았다. ( 시뮬 시간에 해본 것이 아니라서 모르겠지만 잘만 수정하면 학생회비 미납자도 신청을 할 수 있지 않을까?)

 

step2.jsp 에서는 층수를 선택했다.

 

b_floor 라는 변수에 -1 ~ 3까지의 값이 대입되었다.

 

 

step3.jsp 에서는 구역을 설정했다.

 

b_area 라는 변수에 A B C D 값이 들어갔다.

 

 

cabin.do 라는 파일에서는 cab_num 이라는 값이 들어갔다.

 

 

url 을 전송하는 방식에는 여러가지가 있지만 시간도 없는 상태였으므로 vb winhttp 기능을 사용하기로 했다.

 

소스코드는 다음과 같다.

 


Public Class Form1
    Dim WinHttp As New WinHttp.WinHttpRequest
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        WinHttp.Open("GET", "http://ssuitcabin.cafe24.com/step1.jsp")
        WinHttp.Send()
        WinHttp.WaitForResponse()
        WinHttp.Open("GET", "http://ssuitcabin.cafe24.com/step2.jsp?b_floor=-1")
        WinHttp.Send()
        WinHttp.WaitForResponse()
        WinHttp.Open("GET", "http://ssuitcabin.cafe24.com/step3.jsp?b_area=C")
        WinHttp.Send()
        WinHttp.WaitForResponse()
        WinHttp.Open("GET", "http://ssuitcabin.cafe24.com/cabin.do?action=regist&cab_num=127")
        WinHttp.Send()
        WinHttp.WaitForResponse()
        End
    End Sub
End Class

 

 

결론은......

실패했다.

 

시뮬레이션 기간에는 잘 되었던 것 같은데 (설계만 시뮬때 해두고 코딩은 신청 1시간 전에 해서 테스트는 안해봤다.)

아마 접속자가 폭주해서 그런가 WaitForResponse 에서 자꾸 중지되었다.

 

결국은 손으로 신청했지만....

저 순서대로 POST 해주어야 했기 때문에 WaitForResponse 를 넣어주었는데 다음 학기때는 다른 방식으로 해보아야 겠다.