我正在尝试将数据从vb.net应用程序发布到位于服务器上的web服务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服务中检索这些数据?
答案 0 :(得分:0)
所有这些代码都使您看起来像是将数据发布到常规网页,可能是.Net Web表单,而不是 Web服务。如果它是一个Web服务,你将传递XML。因此,假设它是.Net Web窗体,您可以使用Request.Form(“whatever-your-variable-called-called”)访问原始POST数据。但是,您似乎没有在POST数据中传递variable = xyz,因此在您的网络表单中,您将需要访问原始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