.NET 4.x Переадресация на URL при POST запросе - C#

Узнай цену своей работы

Формулировка задачи:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections.Specialized;
using System.Net;
using System.IO;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            WebRequest request = WebRequest.Create([url]http://);[/url]
            request.Method = "POST";
            byte[] byteArray = Encoding.UTF8.GetBytes("Data");
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            Console.WriteLine(request.Address);
            reader.Close();
            dataStream.Close();
            response.Close();
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    }
}
Как нужно изменить код чтобы получить именно только адрес страници на которую переадресовывает сервер после получения данных, без зарузки самой страци? И т.к. я только начинаю изучать C# желательно с коментариями...

Решение задачи: «.NET 4.x Переадресация на URL при POST запросе»

textual
Листинг программы
        static Uri post(string url, string data)
        {
            var request = (HttpWebRequest)HttpWebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.UserAgent = "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51";
            string command = @""+data;
            byte[] bytes = Encoding.ASCII.GetBytes(command);
            //request.AllowAutoRedirect = false;
            request.ContentLength = bytes.Length;
            using (var stream = request.GetRequestStream())
            {
                stream.Write(bytes, 0, bytes.Length);
            }
            using (var stream = new StreamReader(request.GetResponse().GetResponseStream()))
            {
                Console.WriteLine(stream.ReadToEnd());
            }
            Console.WriteLine("-------------------------------");
            var ret = request.Address;
            return ret;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы