У меня есть запрос.
В Javascript у меня есть код, как показано ниже, т.е. я использую retrieveEntityReq для получения данных для «Выполнения отчета» с использованием запроса POST.
Я хочу добиться того же с C #, если я правильно гуглил, думаю, у нас есть в c # функция «RetrieveEntityRequest». Эта функция помогает нам получать метаданные из системы.
Но возможно ли достичь чего-то вроде выполнения отчета и получения ответа из отчета?
Дополнительный комментарий: какова моя конечная цель здесь:
Код, упомянутый выше, предназначен для отображения отчета, а затем для получения данных отчета в base64 String. Как только у меня есть это в bas64, приложите это как pdf в электронной почте.
Все это уже достигнуто в JavaScript (строка base64) и плагине для создания писем и прикрепления PDF.
Теперь я хочу получить строку base64 отчета SSRS в c #.
Еще немного поиска в Google дало мне понимание HttpWebRequest , которое помогает выполнить аналогичный запрос, т.е. GET / POST и так далее.
Я попытался с его помощью, я получаю статус как ОК, но контент не доступен. Может быть, это поможет уточнить мой вопрос больше.
var retrieveEntityReq = new XMLHttpRequest();
retrieveEntityReq.open("POST", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//This statement runs the query and executes the report synchronously.
retrieveEntityReq.send(query);
//These variables captures the response and returns the response in an array.
var x = retrieveEntityReq.responseText.lastIndexOf("ReportSession=");
var y = retrieveEntityReq.responseText.lastIndexOf("ControlID=");
Обновление: я не смог добиться отчета о рендеринге так же, как при использовании Javascript.
Используется другой подход: публикация отчета на сервере и его рендеринг с использованием кода c #.
Ссылка: https://www.codeproject.com/Articles/675762/Call-SSRS-Reports-by-using-Csharp