Как бы мне принять xml?

OracleLover

Всем привет, есть партнеры у которых сервис был настроен WCF(тобишь SOAP), и как-то они его так хитро настроили что и передавали по сети пакеты в формате xml. Сейчас они меня попросили у себя на сайте прикрутить хэндлер который бы обрабатывал подобные запросы. Ну я просто создал action(сайт с использованием MVC) и в итоге по адресуhttp://mysite.com/handler?xmlreq=я получаю их реквест с данными. Но им это не по душе ибо запрос отправляется только гетом, а они хотят постом - а я как-то больше и не знаю как организовать получение такого реквеста. Подскажите еще способы?
9 ответов

OracleLover

у меня такая же ситуация, от разных клиентов получаю и отравляю POST запросы в теле которых xml(запрос-ответ).Если я правильно понял, то все просто: создаешь asp handler (.ashx) using (var streamReader = new StreamReader(context.Request.InputStream)) { RequestData = streamReader.*********();//данные которые вам прислали }


OracleLover

Подскажите еще способы?
Если ограничение на длину URL тебя не пугает, кури base64 (можно еще и сжать).


OracleLover

Если ограничение на длину URL тебя не пугает, кури base64 (можно еще и сжать).
Спасибо, вроде dzone грамотный вариант предложил - пыжусь вот прикрутить.


OracleLover

Я бы задумался, а как клиент получит wsdl описание при таких решениях. :)


OracleLover

Спасибо, вроде dzone грамотный вариант предложил - пыжусь вот прикрутить.
Сорри, я не так прочитал вопрос. Я думал гет нужен. А вообще для таких задач придуманы веб-сервисы.


OracleLover

Сорри, я не так прочитал вопрос. Я думал гет нужен. А вообще для таких задач придуманы веб-сервисы.
не хочу еще плодить сервисы, надо простестить просто одну фичу.dzone, кросавчег, спасибо, все робит!


OracleLover

А никто не подскажет как мне в роут грамотно его сопоставить?Т.е у меня в корне сайта есть хэндлер RequestHandler.ashx, и соотвественно доступно все это дело по адресуhttp://mysite.com/RequestHandler.ashx, хочу прописать в таблиц роутинга чтобы было доступно какhttp://mysite.com/Handler и не знаю как... ведь это не контроллер


OracleLover

не знаю как насчет роут но я всегда в web.config правлю httpHandlers где можно указать путь на который хандлер должен откликаться


OracleLover

не знаю как насчет роут но я всегда в web.config правлю httpHandlers где можно указать путь на который хандлер должен откликаться
я пытался
<add <span>verb</span><span>=</span><span>"*"</span> <span>path</span><span>=</span><span>"handler"</span> <span>type</span><span>=</span><span>"MySite.RequestHandler, MySite"</span> <span>/</span>>
что-то не реагирует