2010-06-01 2 views
0

내 요청을 타사 응용 프로그램 (다른 도메인)에서 내 ASP 응용 프로그램으로 보내고 있습니다. 요청을 처리하고 응용 프로그램에서 비즈니스 부분을 수행하고 응답으로 XML 문자열을 응답으로 게시하여 내 응용 프로그램에 요청한 동일한 페이지에 응답해야합니다. 다음 코드응답으로 XML 문자열 보내기

NameValueCollection postPageCollection = Request.Form; 
    foreach (string name in postPageCollection.AllKeys) 
    { 
     ... = postPageCollection[name]); 
    } 

를 사용하여 요청에서 입력을 검색에 성공하지만 난 사이트 (다른 ​​도메인)에 XML 문자열과 함께 응답을 다시 전송하는 방법을 확실하지 않다?

편집 : POST가 발생한 곳에서 URL을 가져 오는 방법.

답변

1

캔트 당신은 다음과 같은 코드를 사용 :이 개 기능은

Request.UrlReferrer.ToString(); 
+0

Request.UrlReferrer가 NULL 인 것을 발견했습니다. 내 로컬 디스크에 저장된 HTML 파일에서 게시합니다. –

2

당신이있어 에서 Request.ServerVariables는 XML를 들어 [ "HTTP_REFERER"]

에서 온 URL을 얻을 수 여기

public static string ObjectToXML(Type type, object obby) 
{ 
    XmlSerializer ser = new XmlSerializer(type); 
    using (System.IO.MemoryStream stm = new System.IO.MemoryStream()) 
    { 
     //serialize to a memory stream 
     ser.Serialize(stm, obby); 
     //reset to beginning so we can read it. 
     stm.Position = 0; 
     //Convert a string. 
     using (System.IO.StreamReader stmReader = new System.IO.StreamReader(stm)) 
     { 
      string xmlData = stmReader.ReadToEnd(); 
      return xmlData; 
     } 
    } 
} 

public static object XmlToObject(Type type, string xml) 
{ 
    object oOut = null; 

    //hydrate based on private string var 
    if (xml != null && xml.Length > 0) 
    { 
     System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(type); 

     using (System.IO.StringReader sReader = new System.IO.StringReader(xml)) 
     { 
      oOut = serializer.Deserialize(sReader); 

      sReader.Close(); 
     } 
    } 

    return oOut; 
} 

그리고 내가 그것을 사용하는 방법 예이다 사용

[Serializable] 
public class MyClassThatKeepTheData 
{ 
    public int EnaTest; 
} 

MyClassThatKeepTheData cTheObject = new MyClassThatKeepTheData(); 

ObjectToXML(typeof(MyClassThatKeepTheData), cTheObject) 
+0

XML 문자열을 사용하여 응답을 반환하는 방법은 무엇입니까? –

+0

@Sri 거기에는 XML을 반환하는 여러 가지 방법이 있습니다. 하나는 .ashx 파일을 만들고 거기에 입력하는 것입니다. 고객이이 파일을 요청하면됩니다. 다른 방법은 프로토콜에 따라 다릅니다. Cliend가 한 페이지 (.aspx)를 요청하면이 페이지에 xml을 입력하기 만하면됩니다. – Aristos