2010-05-28 104 views
0

我想测试一个休息web服务,但是当我做了后,并尝试中检索保存的响应流文件我得到一个异常说“流未可读“。我究竟做错了什么?我想响应流写入到文件时出现错误

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() 
+0

它继续抛出相同的信息。有没有办法使用浏览器手动发布xml到web服务: POST http:// url/Endpoint NomadicDeveloper 2010-05-28 15:42:26