2010-05-28 6 views
0

J'essaie de tester un service web de repos, mais quand je fais un post et que j'essaie de récupérer le flux de réponse dans un fichier, je reçois une exception disant "Stream n'était pas lisible." Qu'est-ce que je fais mal?Je reçois une erreur lorsque j'essaie d'écrire un flux de réponses dans un fichier

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 

Répondre

0

J'ai trouvé le problème. Le service ne recrutait rien alors le flux était vide.

1

Vous avez flux de demande fermée

reqStream.Close() 

Ensuite, dans ce flux de demande de déclaration n'est pas plus disponible

Copy(req.GetRequestStream(), flWriter) 

Essayez de se rapprocher de la fin

' 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

il a continué à lancer le même message. Existe-t-il un moyen de publier manuellement un fichier XML sur un service Web à l'aide d'un navigateur, par exemple: POST http: // url/Endpoint NomadicDeveloper

Questions connexes