**** Merged from MCS ****
[mono-project.git] / mcs / class / Microsoft.Web.Services / Microsoft.Web.Services / SoapWebResponse.cs
blob9c669c5b7d9d972491dd64927234b6af04aac5be
1 //
2 // SoapWebResponse.cs: Soap Web Response List
3 //
4 // Author:
5 // Sebastien Pouliot (spouliot@motus.com)
6 //
7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
8 //
10 using Microsoft.Web.Services;
11 using System;
12 using System.IO;
13 using System.Net;
15 namespace Microsoft.Web.Services {
17 public class SoapWebResponse : WebResponse {
19 private SoapWebRequest request;
20 private MemoryStream ms;
21 private WebResponse response;
23 internal SoapWebResponse (SoapWebRequest soapRequest)
25 request = soapRequest;
26 response = soapRequest.Request.GetResponse ();
29 public override Stream GetResponseStream ()
31 SoapEnvelope envelope = new SoapEnvelope ();
32 Stream s = response.GetResponseStream ();
33 envelope.Load (s);
34 request.Pipeline.ProcessInputMessage (envelope);
36 ms = new MemoryStream ();
37 envelope.Save (ms);
38 ms.Position = 0; // ready to be read
39 return ms;
42 public override long ContentLength {
43 get { return ((ms == null) ? 0 : ms.Length); }
46 public override string ContentType {
47 get { return request.Request.ContentType; }
50 public override WebHeaderCollection Headers {
51 get { return response.Headers; }
54 public SoapContext SoapContext {
55 get { return request.SoapContext; }