2013-01-03 2 views
1

외부 서버에서 queryString으로 messageid와 status를 받아들이는 webapp가 있습니다. webapp을 새 서버로 마이그레이션하려고합니다. 그러나 이전 서버가 여전히 업데이트를 기다리고 있고 클라이언트를 마이그레이션 할 수있을 때까지 QueryString을 이전 서버로 전달하려면 새 서버가 필요합니다. ?QueryString을 다른 서버로 전달

는 외부 웹 사이트는 0

= MSGID = 12345678 & 응답 내 웹 애플리케이션을 호출 예 :

http://dlrnotify.newserver.com/GetResponse.aspx?MSGID=12345678&RESPONSE=0 

나는 앞으로 다음 로컬 메시지를 처리하고 GetResponse.aspx 뒤에 내 코드를 필요로하는 요청을 이전 서버로 보냅니다. 예를 들어, 전화 :

http://dlrnotify.oldserver.com/GetResponse.aspx?MSGID=12345678&RESPONSE=0 

난 정말 내 응용 프로그램에서 쿼리 문자열에 전달, 기존의 웹 서버로 사용자를 리디렉션하고 싶지 않아요.

나는 QueryString을 Response.QueryString.ToString()으로 호출하여 얻을 수있다. 나는 아무것도를 뒤집어 놓지 않고 이전 서버에 게시하는 방법을 알아야한다.

죄송합니다. 바보 같은 질문 인 경우 웹 앱을 자주 사용하지 않으며 잘못된 검색어를 사용하고 있습니다.

답변

2

이 경우 HttpWebRequest 및 HttpWebResponse를 사용할 수 있습니다. 다음은 새 서버에서 코드 (프로세스 메시지)를 실행 한 후 HttpWebRequest를

Uri uri = new Uri("http://www.amazon.com/exec/obidos/search-handle-form/102-5194535-6807312"); 
    string data = "field-keywords=ASP.NET 2.0"; 
    if (uri.Scheme == Uri.UriSchemeHttp) 
    { 
     HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri); 
     request.Method = WebRequestMethods.Http.Post; 
     request.ContentLength = data.Length; 
     request.ContentType = "application/x-www-form-urlencoded"; 
     StreamWriter writer = new StreamWriter(request.GetRequestStream()); 
     writer.Write(data); 
     writer.Close(); 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
     StreamReader reader = new StreamReader(response.GetResponseStream()); 
     string tmp = reader.ReadToEnd(); 
     response.Close(); 
     Response.Write(tmp); 
    } 
0

을 사용하여 원격 웹 페이지에 데이터를 게시하는 방법에 대한 thses

Uri uri = new Uri("http://www.microsoft.com/default.aspx"); 
    if(uri.Scheme = Uri.UriSchemeHttp) 
    { 
     HttpWebRequest request = HttpWebRequest.Create(uri); 
     request.Method = WebRequestMethods.Http.Get; 
     HttpWebResponse response = request.GetResponse(); 
     StreamReader reader = new StreamReader(response.GetResponseStream()); 
     string tmp = reader.ReadToEnd(); 
     response.Close(); 
     Response.Write(tmp); 
} 

예제 코드를 사용하는 예입니다 수동을 생성 HttpWebRequest 당신이 이미 알아 냈던 것과 같은 쿼리 문자열을 가진 이전 서버에 있어야합니다.

0

귀하의 게시물과 동일한 작업이 있습니다. 그러나 조금 더 있습니다. asp.net과 PHP의 두 가지 웹 응용 프로그램이 있습니다. 두 가지 모두에서 사용자 프로필을 만듭니다. 이제 Asp.NET 응용 프로그램에서 사용자를 생성하고 Asp.Net 응용 프로그램에서 PHP 응용 프로그램에 동일한 정보를 저장해야합니다.

나는 아래의 코드를 사용하고 있지만 wroking하지는 않습니다. 제발 그것을보고 제 놓치고있는 것을 알려주실 수 있습니까?

 CookieContainer cookies = new CookieContainer(); 
     HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(@"http://localhost/admin/config/popup_user_info_brand.php"); 
     request.PreAuthenticate = true; 
     request.AllowWriteStreamBuffering = true; 
     request.CookieContainer = cookies; // note this 
     request.Method = "POST"; 

     string boundary = System.Guid.NewGuid().ToString(); 
     string Username = "admin"; 
     string Password = "admin"; 

     if (!string.IsNullOrEmpty(Username) && !string.IsNullOrEmpty(Password)) 
     { 
      request.Credentials = new NetworkCredential(Username, Password); 
      request.ContentType = string.Format("multipart/form-data; boundary={0}", boundary); 

      StringBuilder sb = new StringBuilder(); 

      sb.AppendLine("Content-Disposition: form-data; name=\"name\""); 
      sb.AppendLine("Singh"); 

      sb.AppendLine("Content-Disposition: form-data; name=\"username\""); 
      sb.AppendLine("Singh123"); 

      sb.AppendLine("Content-Disposition: form-data; name=\"email\""); 
      sb.AppendLine("[email protected]"); 

      sb.AppendLine("Content-Disposition: form-data; name=\"password\""); 
      sb.AppendLine("[email protected]"); 

      // This is sent to the Post 
      byte[] bytes = Encoding.UTF8.GetBytes(sb.ToString()); 

      request.ContentLength = bytes.Length; 

      using (Stream requestStream = request.GetRequestStream()) 
      { 
       requestStream.Write(bytes, 0, bytes.Length); 
       requestStream.Flush(); 
       requestStream.Close(); 

       using (WebResponse response = request.GetResponse()) 
       { 
        using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
        { 
         HttpContext.Current.Response.Write(reader.ReadToEnd()); 
        } 
       } 
      } 
     } 

참고 : - PHP 웹 사이트는 타사이므로 코드에 대한 액세스 권한이 없습니다.

감사합니다. Ginni.

관련 문제