Как вызвать метод в контроллере из консольного приложения - PullRequest
0 голосов
/ 28 июня 2018

Я пытался вызвать метод в контроллере (mvc) из консольного приложения. Он имеет целочисленное значение в качестве параметра. Как передать целочисленное значение из консольного приложения в контроллер в качестве параметра. Как запустить это и проверить.

Вызов метода из консольного приложения:

public class Program
{
    public static void Main()
    {


        var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:60035/AddDataToDataBaseController/AddData");
        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method = "POST";
        var response = (HttpWebResponse)httpWebRequest.GetResponse();
        var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();


    }
}

}

метод контроллера:

[AllowAnonymous]
    [HttpPost]
    public JsonResult AddData(int fileDetailsId)
    {
        var response = new ResponseDTO();
        FileDetails fileDetails = _addingDataDl.GetFileDetails(fileDetailsId);
        bool hasKnowParts = false;
        FileProcess fileProcess = _addingDataDl.GetFileProcess(fileDetailsId, Enumerations.ProcessType.Parsed);
        try
        {
            Entities.User user = _userRepository.GetUserByUserName(User.Identity.Name);
            if (fileDetails != null)

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вы должны поместить параметр в ваши данные POST. Это делается путем записи в RequestStream WebRequest. Вот так:

var filedetails = "filedetails=1";
var data = Encoding.ASCII.GetBytes(filedetails);
var requestStream = httpWebRequest.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();

Вам также придется изменить тип содержимого на «application / x-www-form-urlencoded».

0 голосов
/ 28 июня 2018

С этим связаны две проблемы:

Одним из них является имя контроллера в URL. Это должно быть AddDataToDataBase вместо.

Во-вторых, отсутствует целочисленный параметр. Добавьте параметр в запрос. Попробуйте следующий код.

byte[] data = Encoding.ASCII.GetBytes("fileDetailsId=1");//Prepare data to write to write to request
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:60035/AddDataToDataBase/AddData");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.ContentLength = data.Length;//Here you set the content length
Stream stream = httpWebRequest.GetRequestStream();
stream.Write(data, 0, data.Length);//Here you write your parameters to the request
var response = (HttpWebResponse)httpWebRequest.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...