Я получаю сообщение об ошибке при попытке записать поток ответов в файл - PullRequest
0 голосов
/ 28 мая 2010

Я пытаюсь протестировать оставшийся веб-сервис, но когда я делаю пост и пытаюсь восстановить поток ответа в файл, я получаю исключение, говорящее «Поток не читается». Что я делаю не так?

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

Ответы [ 2 ]

1 голос
/ 28 мая 2010

Вы закрыли поток запросов

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 голосов
/ 28 мая 2010

Я нашел проблему. Служба ничего не возобновляла, поэтому поток был пуст.

...