Показать данные поста! - PullRequest
       11

Показать данные поста!

0 голосов
/ 14 января 2010

Я пытаюсь отправить данные из приложения vb.net в веб-службу asmx, которая находится на сервере!

Для размещения данных из приложения vb.net я использую этот код:

Public Function Post(ByVal url As String, ByVal data As String) As String
    Dim vystup As String = Nothing
    Try
        'Our postvars
        Dim buffer As Byte() = Encoding.ASCII.GetBytes(data)
        'Initialisation, we use localhost, change if appliable
        Dim WebReq As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
        'Our method is post, otherwise the buffer (postvars) would be useless
        WebReq.Method = "POST"
        'We use form contentType, for the postvars.
        WebReq.ContentType = "application/x-www-form-urlencoded"
        'The length of the buffer (postvars) is used as contentlength.
        WebReq.ContentLength = buffer.Length
        'We open a stream for writing the postvars
        Dim PostData As Stream = WebReq.GetRequestStream()
        'Now we write, and afterwards, we close. Closing is always important!
        PostData.Write(buffer, 0, buffer.Length)
        PostData.Close()
        'Get the response handle, we have no true response yet!
        Dim WebResp As HttpWebResponse = DirectCast(WebReq.GetResponse(), HttpWebResponse)
        'Let's show some information about the response
        Console.WriteLine(WebResp.StatusCode)
        Console.WriteLine(WebResp.Server)

        'Now, we read the response (the string), and output it.
        Dim Answer As Stream = WebResp.GetResponseStream()
        Dim _Answer As New StreamReader(Answer)

        'Congratulations, you just requested your first POST page, you
        'can now start logging into most login forms, with your application
        'Or other examples.
        vystup = _Answer.ReadToEnd()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

    Return vystup.Trim() & vbLf
End Function 

Теперь, как я могу получить эти данные в сервисе asmx?

1 Ответ

0 голосов
/ 14 января 2010

Весь этот код создает впечатление, что вы публикуете данные на обычной веб-странице, возможно, в веб-форме .Net, а не веб-службе. Если бы это был веб-сервис, вы бы вместо этого передавали XML. Таким образом, предполагая, что это веб-форма .Net, вы можете получить доступ к необработанным данным POST, используя Request.Form («независимо от того, как называется ваша переменная»). Однако похоже, что вы не передаете переменную = xyz в данных POST, поэтому вместо этого в веб-форме вам потребуется доступ к необработанному Request.InputStream

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim T As String
    Using SR As New System.IO.StreamReader(Request.InputStream)
        T = SR.ReadToEnd()
    End Using
End Sub
...