2009-09-09 6 views
0

Je suppose que vous pouvez utiliser un XmlReader pour lire l'enveloppe à partir d'un XmlDocument. Est-ce que quelqu'un a un bon exemple comment? Je veux simplement extraire le texte entier de SOAP envoyé dans une variable de chaîne afin que nous puissions l'enregistrer en cas d'erreur de requête.Lecture de XML/SOAP à partir d'un XMLDocument

méthodes Exemple:

protected virtual HttpWebRequest CreateWebRequest(string endPoint, Int32 contentLength) 
{ 
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_requestURI); 
    request.Method = "POST"; 
    request.ContentLength = contentLength; 
    request.ContentType = "text/xml;charset=UTF-8"; 

    return request; 
} 


public Response.Response SendRequest() 
{ 
    XmlDocument doc = CreateRequestXML(); 

    // Determins if API call needs to use a session based URI 
    string requestURI = UseAuthURI ? _requestURIAuthBased + sID : _requestURI; 

    byte[] data = XmlUtil.DocumentToBytes(doc); 

    // Create the atual Request instance 
    HttpWebRequest request = CreateWebRequest(requestURI, data.Length); 
    request.ContentLength = data.Length; 
    request.KeepAlive = false; 
    request.Timeout = 30000; 

    // Send the Request 
    using (Stream requestStream = request.GetRequestStream()) 
    { 
     requestStream.Write(data, 0, data.Length); 
    } 

    // get response 
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
    { 
     if (response.StatusCode != HttpStatusCode.OK) 
     { 
      string message = String.Format("POST failed. Received HTTP {0}", response.StatusCode); 
      throw new Exception(message); 
     } 

     using (Stream responseStream = response.GetResponseStream()) 
     { 
      using (XmlReader reader = XmlReader.Create(responseStream)) 
      { 
       return CreateResponse(reader); 
      } 
     } 
    } 
} 
+0

Quelle est la situation? Service ASMX? WCF? Comment allez-vous mettre la main sur le XML? –

+0

mise à jour post avec l'exemple – PositiveGuy

+1

Je suis confus. Qu'est-ce que tu veux faire? Juste se connecter à un fichier? Utilisez XmlDocument.Save ou .WriteTo. –

Répondre

Questions connexes