我正在尝试测试其余的web服务,但是当我发布帖子并尝试检索将响应流保存到文件时,我得到一个异常,说“Stream不可读”。我做错了什么?
Public Sub PostAndRead()
Dim flReader As FileStream = New FileStream("~\testRequest.xml", FileMode.Open, FileAccess.Read)
Dim flWriter As FileStream = New FileStream("~\testResponse.xml", FileMode.Create, FileAccess.Write)
Dim address As Uri = New Uri(restAddress)
Dim req As HttpWebRequest = DirectCast(WebRequest.Create(address), HttpWebRequest)
req.Method = "POST"
req.ContentLength = flReader.Length
req.AllowWriteStreamBuffering = True
Dim reqStream As Stream = req.GetRequestStream()
' Get data from upload file to inData
Dim inData(flReader.Length) As Byte
flReader.Read(inData, 0, flReader.Length)
' put data into request stream
reqStream.Write(inData, 0, flReader.Length)
flReader.Close()
reqStream.Close()
' Post Response
req.GetResponse()
' Save results in a file
Copy(req.GetRequestStream(), flWriter)
End Sub
答案 0 :(得分:1)
您已关闭请求流
reqStream.Close()
然后在此语句中,请求流不再可用
Copy(req.GetRequestStream(), flWriter)
尝试靠近末尾
' put data into request stream
reqStream.Write(inData, 0, flReader.Length)
flReader.Close()
'reqStream.Close() ' <- comment this
' Post Response
req.GetResponse()
' Save results in a file
Copy(req.GetRequestStream(), flWriter)
reqStream.Close()
答案 1 :(得分:0)
我发现了问题。该服务没有重新设置,因此流是空的。