Веб-служба ASP.NET POST / GET через REST недоступна? - PullRequest
0 голосов
/ 01 июля 2010

Я работаю с веб-службой на основе .NET, где некоторые вызовы API могут быть доступны через HTTP POST / GET, но для других доступны только SOAP 1.1 / 1.2.

Компания, которая разработала API, вернулась ко мне и сказала следующее, и мне было интересно, пытается ли он натянуть мне глаза или говорит правду. Его ответ не устраивает меня, поэтому я подумал, что попробую проверить, но не смог найти ответа.

Я думал, что это очень странно, так как я ничего не указали на другие методы, чтобы сделать их доступны через HTTP Post или HTTP Получить протоколы. Я установил это глобально так что они все должны быть доступны. Я изучал это, и это Кажется, что HTTP Post и HTTP Get протоколы могут использоваться только с методы, которые используют простые типы, например где метод принимает и целое число параметр. Методы, которые вы перечислили ниже возьмите более сложные объекты, например Обнуляемый тип или пользовательские объекты. Однако протокол SOAP можно использовать с этим сложными методами.

Ответы [ 2 ]

0 голосов
/ 01 июля 2010

Он неверен.Вы можете использовать DataContractSerializer для отправки и получения сложных типов.

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

Для того, чтобы параметры POST вам нужно сериализовать, используя DataContractSerializer,например,

На сервере:

[OperationContract]
[WebInvoke(Method="POST",UriTemplate = "/foos")]
void PostFoo(Foo foo) {}

На клиенте:

var foo = new Foo();
var content = HttpContentExtensions.CreateDataContract<Foo>(foo);
var client = new HttpClient("http://example.org/service.svc/foos");
client.Post(content)

В коде клиента используется библиотека Microsoft.Http, которая находится в наборе WCF Rest Starter..

0 голосов
/ 01 июля 2010

Его объяснения верны. POST / GET допускает только типичные примитивы - int, string, bool и т. Д. Или, скорее, параметры, которые могут интерпретироваться с помощью простых пар имя / значение. Протокол SOAP обрабатывает сторону XML веб-сервисов в .Net (похоже, он говорит о старых сервисах ASMX.)

ОБНОВЛЕНИЕ: небольшой контекст здесь. Похоже, ваш контакт мало что знает о веб-сервисах .Net, поэтому, хотя его описание основано на том, что знает он , это, конечно, не ограничение среды; ему просто нужно сделать немного больше работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...