Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как перенаправить POST запрос


Автор: Loengreen 28.5.2009, 19:41
Здравствуйте!
Вопрос скорее всего глупый, но я новичек и надеюсь вы меня прости. smile

Задача.
Получить от клиента POST запрос (внутри SOAP) и отправить его веб-сервису.
(Если я правильно понимаю и называю вещи своими именами я создаю прокси, который пересылает мой запрос веб-сервису, все это я делаю для того, что бы запросить контент с другого домена).

Код

    public string GetString(Stream InputStream)
    {
        StreamReader sr = null;
        sr = new StreamReader(InputStream);
        Char[] read = new Char[1000];
        int count = sr.Read(read, 0, 1000);
        string strOut = "";
        while (count > 0)
        {
            String str = new String(read, 0, count);
            strOut += str;
            count = sr.Read(read, 0, 1000);
        }
        return strOut;
    }
    
    public void ProcessRequest (HttpContext context) {

        HttpRequest _request = context.Request;

            Stream newStream = null;
            string requestBody = GetStringStream(_request.InputStream);

            WebRequest request = WebRequest.Create(SERVICE_URL);
            request.Credentials = CredentialCache.DefaultCredentials;
            request.Method = "POST";
            request.ContentType = "text/xml";
            byte[] SomeBytes = null;
            SomeBytes = Encoding.UTF8.GetBytes(requestBody);
            request.ContentLength = SomeBytes.Length;
            newStream = request.GetRequestStream();
            newStream.Write(SomeBytes, 0, SomeBytes.Length);
            newStream.Close();            
           
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            string responseFromServer = GetStringStream(response.GetResponseStream());

            string content_type = response.ContentType;
            response.Close();

            context.Response.ContentType = content_type;
            context.Response.Write(responseFromServer);

    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)