Сделать http-запрос через код C #?


person chobo2    schedule 20.05.2011    source источник
comment
Конечно, это возможно, но это кажется плохой идеей.   -  person R0MANARMY    schedule 20.05.2011
comment
@ R0MANARMY - Да, я знаю, что это не кажется идеальным, но я смотрю на несколько вариантов, чтобы сделать что-то подобное, или мне нужно сделать своего собственного отправителя электронной почты smtp и попытаться сделать так, чтобы это отправленное письмо выглядело так же, как отправленное из этой библиотеки ожидайте, что я потеряю представления mvc и главные страницы или вырву все свои электронные письма, которые я сделал до сих пор с библиотекой, и начну все сначала. Поэтому, если кто-то не может сказать мне что-нибудь получше, я выбираю из худших случаев то, что кажется лучшим.   -  person chobo2    schedule 20.05.2011
comment
@Richard - Я считаю, что то, что вы опубликовали, требует живого http-контекста, которого у меня нет.   -  person chobo2    schedule 20.05.2011
comment
Вы все время повторяете, что у вас нет контекста http, но если вы находитесь внутри действия, вы можете получить его. Вы делаете это не из действия ASP.NET?   -  person R0MANARMY    schedule 20.05.2011
comment
@ R0MANARMY - Нет, у меня нет живого http-контекста. Я запускаю кварцевый планировщик через запуск приложения, которое выполняется в собственном потоке и не создает контекст http.   -  person chobo2    schedule 20.05.2011
comment
Вы можете включить эту информацию в вопрос.   -  person R0MANARMY    schedule 20.05.2011


Ответы (2)


Вы можете использовать класс WebClient:

using (var client = new WebClient())
{
    var values = new NameValueCollection
    {
        { "prop1", "value 1" },
        { "prop1", "value 2" },
    };
    var result = client.UploadValues("http://example.com/", values);
}
person Darin Dimitrov    schedule 20.05.2011

Я использую метод, опубликованный Ричардом. Я вызываю viewengine для визуализации моего частичного представления, затем использую System.Net.Mail.SmtpClient для создания электронного письма и его отправки.

Прошу прощения, поскольку я предпочел бы прокомментировать выше, но у меня нет репутации, чтобы сделать это.

person eppdog    schedule 20.05.2011
comment
Я думаю, вам нужен http-контекст, чтобы использовать это. Если бы это сработало, я мог бы использовать библиотеку, которую использую, поскольку она в значительной степени делает именно это. Он берет представление, отображает его и отправляет. - person chobo2; 20.05.2011