Как должен выглядеть XML-почтовый запрос для службы WCF RESTful с одним параметром? - PullRequest
2 голосов
/ 19 января 2010

Мне трудно понять, как должен выглядеть мой XML при выполнении почтового запроса через службы WCF REST. При использовании datacontract у меня вообще нет проблем, но когда я просто хочу отправить через один параметр, например, int, я получаю следующую ошибку: «Удаленный сервер вернул ошибку: (405) Метод не разрешен».

[OperationContract]  
[WebInvoke(UriTemplate = "/DeleteUser", Method= "Post")]  
bool DeleteUser(int userId);

Как должен выглядеть мой XML?

Заранее спасибо

Ответы [ 4 ]

1 голос
/ 04 мая 2011

DJ - Единственный способ найти то, что вы изначально просили, - это пролистать пример по этой ссылке. Он использует класс Stream для ввода параметров записи в теле HTTP-запроса. Тогда вы должны пройти через это вручную ...

Надежда Это помогает.

0 голосов
/ 14 ноября 2011

Убедитесь, что вы выполняете операцию POST для ресурса. URL-адрес может быть следующим:

http://localhost/SampleApplication/DeleteUser

Ниже приведен формат запроса, который вам нужен

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">55</int>  

Указанный выше xml должен быть частью тела сообщения.

0 голосов
/ 19 января 2010

Я использую сообщение в качестве функции удаления, поэтому я не хочу использовать параметр в URI. Получать звонки должны быть для получения данных.

Это не проблема. UserId - это int, он ожидает и int. Мой вопрос: если вы делаете сообщение, используя один параметр, как должен выглядеть xml?

0 голосов
/ 19 января 2010

как это

[OperationContract]
[WebInvoke(UriTemplate = "/DeleteUser/{userId}", Method= "Post")]
bool DeleteUser(string userId)
{
   int actualUserId = Int32.Parse(userId);
   ...
}

ps: почему вы используете POST с одним параметром?


Я могу видеть не , используя GET, если вы хотите удалить, но тогда почему бы не использовать HTTP DELETE? В этом случае шаблоном URI будет / user / {userId} и Method = "Delete".

Нет полезной нагрузки, нет XML для передачи.

Роб Бэгби объясняет

код будет выглядеть как

[OperationContract]
[WebInvoke(UriTemplate = "/User/{userId}", Method= "Delete")]
bool DeleteUser(string userId)
{
   int actualUserId = Int32.Parse(userId);
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...