Как использовать сервис REST, используя http POST - PullRequest
0 голосов
/ 16 октября 2010

Я определил реализацию службы REST в WCF:

enter code here
[ServiceContract]
public interface IService
{
    [OperationContract]
    [WebGet(UriTemplate = "customers/{id}", ResponseFormat = WebMessageFormat.Json)]
    Customer GetCustomer(string id);

    [OperationContract]
    [WebInvoke(UriTemplate = "customers", ResponseFormat = WebMessageFormat.Json)]
    Customer PostCustomer(Customer c);
}


public class Service : IService
{
    public Customer GetCustomer(string id)
    {
        return new Customer { ID = id, Name = "Demo User" };
    }

    public Customer PostCustomer(Customer c)
    {
        return new Customer { ID = c.ID, Name = "Hello, " + c.Name };
    }
}


[DataContract(Namespace = "")]
public class Customer
{
    [DataMember]
    public string ID { get; set; }
    [DataMember]
    public string Name { get; set; }
}

Операция Get проста.Без генерации прокси на стороне клиента я не уверен, как использовать службу POST.Любой пример кода будет оценен!

1 Ответ

0 голосов
/ 16 октября 2010

Если у вас есть объект customer на стороне клиента, вы можете использовать библиотеки Microsoft.Http и сделать:

var client = new HttpClient()
var customer = new Customer() {ID=2, Name="Foo"};
var content = HttpContent.CreateJsonDataContract<Customer>(customer);
client.Post(new Uri("http://example.org/customers"),content);

, если вы хотите избежать использования объекта customer, вы можете просто создатьJSON в виде строки, а затем создайте содержимое следующим образом:

var content = HttpContent.Create("{...Json...}", "application/json");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...