2012-11-08 9 views
-1

타사에게 {http : //myIp/Myhandler.ashx}에 기반한 제네릭 처리기로 요청을 전송한다고 가정합니다. 그들이 보낸 요청에 어떻게 대응할 수 있습니까? 나는 context 객체에 접근 할 수있는 function process request를 가지고있다. 그러나 어떻게 이것이 나의 응답이 요청이 시작된 곳으로 돌아가고 요청에 대한 답장으로 돌아가는지를 확인하는 데 사용될 수있다. HTTPResponse 객체를 생성하고 서버에 전송하려고 시도했지만 작동하지 않습니다. 나는 그들에게 OK 메시지로 회신하고 그들에게 사용자를 리디렉션 할 웹 주소를 제공하려고 노력하고있다.ASP.Net 제네릭 처리기로 전송 된 요청에 어떻게 대응할 수 있습니까?

public void ProcessRequest(HttpContext context) 
     { 

      string status = context.Request.Params["Status"]; 
      string statusDetail = context.Request.Params["StatusDetail"]; 

      switch (status.ToUpper()) 
      { 
       case "OK": 
        { 
         StringBuilder content = new StringBuilder(); 

         content.Append("Status=" + HttpUtility.UrlEncode("OK")); 
         content.Append("&RedirectURL=" + HttpUtility.UrlEncode("http://http://myip:myport/Error.aspx?Error=SUCCESS")); 
         content.Append("&StatusDetail=" + HttpUtility.UrlEncode("OK")); 


         HttpWebResponse response = SendPOSTRequest("http://theirip.page", content.ToString(), "", "", true); 
} 
} 
+0

내가로 리디렉션하지 않을 것을 추가해야 오류 페이지. 이것은 테스트 페이지 일뿐입니다. – CSharpened

+0

사람들이 설명없이 downvote 할 때 그것을 좋아하십시오. 매우 도움이 됨 – CSharpened

답변

1

사용 context 매개 변수 응답을에 보낼 수 있습니다. 응답 문자열이기 때문에, 당신은 단지 Write를 사용할 수 있습니다

context.Response.Write(content.ToString()); 

을 또한 응답 헤더의 일부를 설정할 수 있습니다 :

context.Response.ContentType = "text/plain"; 
context.Response.ContentEncoding = System.Text.Encoding.Default; 
+0

'HttpContext'는'Write' 메소드를 가지고 있지 않습니다; 당신은'Response' 객체에'Write' 할 필요가 있습니다. – Servy

+0

거기에 오타가 있습니다. 그것은 context.Response.Write (content.ToString())이어야합니다. 나는 그것을 지금 시도 할 것이다. – CSharpened

+1

@CSharpened 감사합니다. – McGarnagle

5

context.Response을 사용하면 응답 스트림에 쓸 수 있습니다. ASP, IIS 및 HTTP는 응답 스트림에 대한 쓰기가 요청을 실제로 보낸 모든 것을 향해 진행되도록 보장합니다 (문자열 작성기에 모든 것을 넣고 쓰는 대신에 Write을 사용할 수 있습니다. .

0
HttpWebResponse response = Context.Response 

또는 간단한 쓰기 바로 설치하는 것이

Context.Response = SendPOSTRequest .... 
+0

이것은 작동하지 않습니다 ...'HttpContext.Response'는 읽기 전용입니다. – McGarnagle

+1

당신은 좋은 지적을했습니다 –

관련 문제