Как передать объект через вызов веб-клиента на контроллер веб-API, который ожидает объект в качестве параметра? - PullRequest
0 голосов
/ 15 ноября 2018

У меня консольное приложение в качестве клиента, и я пытаюсь получить данные рабочей таблицы, передавая идентификатор клиента в контроллер веб-API. Затем создается объект ClientWorkSheet с полученной информацией из предыдущего вызова API и некоторыми другими деталями. (Код работает нормально до этого момента)

Теперь я хочу передать этот объект ClientWorkSheet в качестве параметра другому контроллеру API, который берет объект и распечатывает его. Я получаю сообщение об ошибке «Тип носителя не поддерживается» при вызове API:
call To API. Метод действия контроллера:
Controller action method

Вот код WebClient:

using (var client = new WebClient())
{
        client.Headers.Add("Content-Type:application/octet-stream");
        client.Headers.Add("Origin:http://localhost:50920");
        client.Headers.Add("Access-Control-Allow- 
        Origin:http://localhost:9000");
        client.UseDefaultCredentials = true;
        client.Credentials = CredentialCache.DefaultCredentials;
}

1 Ответ

0 голосов
/ 21 ноября 2018

Один из моих коллег предложил использовать RestSharp для передачи объектов в вызове Web API, и это сработало для меня.Совместное использование довольно простое в использовании.

var reportRequest = new RestSharp.RestRequest("api/ClientWorksheet/CreateClientWorksheetAsPdf", RestSharp.Method.POST)

            {
                RequestFormat = RestSharp.DataFormat.Json
            };

            reportRequest.AddBody(sheet);
            var restClient = new RestSharp.RestClient
            {
                BaseUrl = new Uri("http://localhost:50061"),
                Authenticator = new RestSharp.Authenticators.NtlmAuthenticator()
            };

                var response = restClient.Execute<DataSet>(reportRequest);
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    //success
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...