Использование службы WCF REST несколькими способами (.Net, обычный XML) - PullRequest
1 голос
/ 01 декабря 2009

Я очень разочаровался в WCF, так как просто хочу использовать этот простой сценарий:

  1. Предоставьте веб-сервис, используя REST, с UriTemplate, подобным /method/{param1}/{param2}/, и 3-м параметром, который отправляется службе в виде XML в виде данных POST.
  2. Используйте только простой XML, без затрат SOAP.
  3. Иметь возможность создавать прокси в Visual Studio, чтобы .Net с помощью клиента мог легко использовать службу (здесь не заботятся об издержках SOAP).

Я могу создать 1. и 2., но никак не могу использовать 3. Я попытался добавить обе конечные точки webHttpBinding и basicHttpBinding в конфигурацию моих служб; Я дурачился с тегом <services/>, но я просто не могу заставить это работать. Что мне здесь не хватает?!

N.B. Я проверил эту статью: конечные точки REST / SOAP для службы WCF но ничего из того, что там описано, похоже, не работает?!

1 Ответ

1 голос
/ 01 декабря 2009

Вы не можете сгенерировать клиентский прокси для webHttpBinding, а basicHttpBinding использует SOAP. Обойти это невозможно. Вопрос, на который вы ссылаетесь, включает обе привязки. Вы не можете выбирать нужные функции из каждой привязки.

Однако, почему вы хотите создать клиентский прокси? Используя библиотеку Microsoft.Http, вызвать вашу службу так же просто, как,

var client = new HttpClient();
var content = HttpContent.Create(myXmlDocument);
client.Post("http://example.org/param1/param2",content)
...