Массовое назначение с использованием RestSharp, Post запрос - MVC3
-
27-10-2019 - |
Вопрос
Я проводил много исследований, пытаясь найти лучший способ передать запрос на пост массового назначения с моим приложением ASP.NET MVC3 без особого успеха.
Вот сценарий:
Как я уже упоминал, у меня есть ASP.NET MVC3 со стандартными методами отдыха, с которыми я пытаюсь общаться с настольным приложением (еще одно приложение, написанное на месте). Чтобы начать с прототипа, мы просто использовали загрузку документа Brute Force XML через WebClient и затем наличие приложения MVC3 проанализируется через документ XML. Чтобы сохранить это поведение, мы должны постоянно создавать несколько методов, один для анализа документов XML, и один для стандартного использования модели на веб -сайте. Я хотел бы держаться подальше от этого, если смогу.
После всего моего исследования я столкнулся Restsharp И мне интересно, есть ли что -нибудь для обработки запросов на пост массового назначения с помощью RestSharp. Я бы хотел сделать что -то вроде следующего:
В приложении MVC3 ...
public class RegistrationRequest {
public string Email { get; set; }
public string RequestedUserName { get; set; }
public bool Register(string domain) {
// Do registration stuff.
}
}
public class AccountController : Controller {
[Authorize,HttpPost]
public ActionResult Register(IEnumerable<RegistrationModel> models) {
return models.Any(model => !model.Register(this.Url.DnsSafeHost))
? new HttpStatusCodeResult(400)
: new HttpStatusCodeResult(200);
}
}
В приложении для настольного компьютера ...
public class RegistrationRequest {
public string Email { get; set; }
public string RequestedUserName { get; set; }
}
public class RegistrationService {
public void CreateUsers() {
List<RegistrationRequest> registrations = new List<RegistrationRequest>();
// list of requested users built up by app
var client = new RestClient(baseUrl);
var request = new RestRequest("Account/Register", Method.POST);
//request.AddAllMyObjects(registrations);
var response = client.Execute(request);
}
}
Кто -нибудь может дать мне какие -либо указатели на то, как это достичь?
Решение
После просмотра документов и быстро Джон Шинан, Я обнаружил, что это в настоящее время невозможно. Я закончил тем, что сделал единственные запросы на API, который мы разработали. Поскольку это работает в фоновом режиме, это на самом деле не влияет на пользовательский опыт в настольном приложении, а запросы были необходимы меньше и в любом случае более лаконичным.
Я обнаружил, что это фактически позволило нам получить лучшие результаты в любом случае по каждому отдельному случаю прохождения/сбоя и обрабатывают их надлежащим образом. Хотя это могло быть хорошо, этот запрос «по одному» на самом деле оказался лучше в конце концов.