WebResponse 和WebRequest的问题,折磨我好久了
我写了一个用于解收数据的网页和发送数据的函数
下面是解收并返回数据的代码
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'接受数据
Dim str As Stream, strmContents As String
Dim myReadStream As StreamReader
Dim strAckMsg As String
Dim strReceived As String
' Create a Stream object,get message received
str = Request.InputStream
myReadStream = New StreamReader(str)
strReceived = ""
strReceived = myReadStream.ReadToEnd()
str.Close()
myReadStream.Close()
Response.Charset = "utf-8"
Response.ContentType = "application/xml"
Dim w As New StreamWriter(Response.OutputStream)
w.Write("你发送的数据是" & strReceived )
w.Flush()
Response.Flush()
'如果加上这一句,请求断就会出异常,到底是为什么
Response.Close()
End Sub
Function sendMsg(ByVal strMsg As String, ByVal strURL As String) As String
Dim output As Stream
Dim input As Stream
Dim r As StreamReader
Dim w As StreamWriter
Dim myRequest As WebRequest
' Initialize the WebRequest.
myRequest = WebRequest.Create(strURL)
myRequest.ContentType = "application/xml;charset=UTF-8"
myRequest.Method = "POST"
output = myRequest.GetRequestStream()
'将数据发出
w = New StreamWriter(output)
w.Write(strMsg)
w.Flush()
w.Close()
output.Close()
'接收返回数据
Dim resp As WebResponse
resp = myRequest.GetResponse()
input = resp.GetResponseStream()
r = New StreamReader(input, System.Text.Encoding.UTF8)
Dim tempStr As String
Try
'下面这句抛出异常
tempStr = r.ReadToEnd()
Catch ex As Exception
'异常描述:要求非负数字:参数:bytecount
MsgBox(ex.Message)
End Try
resp.Close()
Return tempStr
End Function