Это сводит меня с ума. Я использую ASP.NET MVC. У меня есть контроллер с действием HttpPost, который действует как URL-адрес обратного вызова, который вызывается другим сервером (не под моим контролем). Я хочу динамически читать JSON, отправленные на него, не используя WebAPI или привязку к модели. У URL-адреса также есть параметр строки запроса, переданный ему.
URL-адрес обратного вызова выглядит примерно так:
http://domain.com/callback?secret=1234
Я пробовал читать размещенный ввод, используя:
[HttpPost]
public ActionResult Callback( String secret )
{
String jsonData = new StreamReader(this.Request.InputStream).ReadToEnd();
// ...
}
Однако "jsonData" всегда является нулевым или пустым.
Я просто хочу получить размещенный ввод и вставить его в JsonFx, чтобы я мог динамически получать доступ к содержимому. Любые идеи о том, как сделать это самым простым способом?
UPDATE
Я обнаружил следующее...
В то время как вышеуказанное НЕ работает (jsonData будет пустым или пустым), следующее будет, если я сконфигурирую, какие маленькие параметры у меня есть на вызывающем сервере, чтобы опустить "секретный" строковый параметр запроса, который касается всех я может сделать с этой целью, поскольку это не мой сервер. В этом случае jsonData будет иметь правильную строку JSON:
[HttpPost]
public ActionResult Callback( /* String secret */ )
{
String jsonData = new StreamReader(this.Request.InputStream).ReadToEnd();
// ...
}
Это очень неприятно для работы, и я не знаю простого способа принять строку запроса и опубликовать данные JSON на стандартном контроллере MVC.
У меня есть "контроллер обратного вызова" с методами Action, которые принимают различные данные (через GET, через форму POST, через JSON POST, через JSON POST с строкой запроса и т.д.) с разных сторонних серверов. Это ответные вызовы типа торговца, где я не контролирую форматы или методы, используемые для передачи информации. Мне просто нужно принять обратные вызовы и обработать информацию, которая должна быть там.
Все это отлично работает в моем контроллере, за исключением случая "JSON POST w/Query String".
Это выглядит (по крайней мере, для меня) как недостаток в стандартных ASP.NET MVC-контроллерах.???
Может ли кто-нибудь предложить решение для этого, которое может использоваться в стандартном ASP.NET MVC-контроллере?