본문 바로가기

Information/SilverLight3

[SL] Webclient 로 POST 데이터보내기~

실버라이트에서 POST 데이터는 보내는 방법입니다.

제경우 웹서버는 PHP를 사용하였습니다.
아래 샘플에 있는 login.php 파일이며
해당파일은 sqlp  sqlg  두개의 파라미터를 화면에 표시하도록 설정되어있습니다.

Private Sub Upload
    Dim wc As New WebClient
    AddHandler wc.UploadStringCompleted, AddressOf updon
    wc.Headers(HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"
    wc.UploadStringAsync(New Uri("http://tindevil.com/login.php"), "POST", "sqlp=this is post parameter!!!")
End Sub

Private Sub updon(ByVal sender As Object, ByVal e As UploadStringCompletedEventArgs)
    MessageBox.Show(e.Result)
End Sub

먼저 사용할 WebClient 를 선언합니다. 비동기요청이므로 업로딩이 완료되었을때 수행할 프로시져를
AddHandler 로 연결시켜주세요 (#사용자분들역시 + 로 이벤트를 연결하시면됩니다)

그런후 UploadStringAsync 로데이터를 요청합니다. 제시된 http://tindevil.com/login.php 이것은
필자가 만들어놓은 그냥 그런 파라미터 테스트용입니다.  소스코드의 데이터만보면 대충 하시겠죠?
그리고 업로드완료되었을때 받은값을 파라미터로 찍도록 하였습니다.

아.. 중요한건데. 기본적으로 GET타입의 파라미터는 문제없이 다 찍을수있으나.  POST의 경우
다음의 줄이 꼭 필요합니다..  해당컨텐츠타입을 설정하지않게되면 POST파라미터값이 반환되지않습니다.
    wc.Headers(HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"