2009-09-09 4 views
0

어떻게 든 XmlReader를 사용하여 XmlDocument에서 봉투를 읽을 수 있다고 가정합니다. 누구든지 좋은 모범을 보았습니까? 보내진 전체 SOAP 텍스트를 문자열 변수로 추출하여 요청 오류가 발생했을 때이를 기록 할 수 있습니다.XMLDocument에서 XML/SOAP 읽기

예 방법 : doc.OuterXML 작동 사용

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

상황은 어떻습니까? ASMX 서비스? WCF? XML에 대해 어떻게 생각합니까? –

+0

업데이트 된 게시물 – PositiveGuy

+1

와 함께 나는 혼란스러워. 네가하고 싶은게 뭐야? 파일에 그냥 로그인 하시겠습니까? XmlDocument.Save 또는 .WriteTo를 사용하십시오. –

답변

관련 문제