Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用HTTPPOST使用REST服务_Http_Rest_Post - Fatal编程技术网

如何使用HTTPPOST使用REST服务

如何使用HTTPPOST使用REST服务,http,rest,post,Http,Rest,Post,我定义了REST服务的WCF实现: enter code here [ServiceContract] public interface IService { [OperationContract] [WebGet(UriTemplate = "customers/{id}", ResponseFormat = WebMessageFormat.Json)] Customer GetCustomer(string id); [OperationContract]

我定义了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服务。任何代码样本将不胜感激

如果客户端也有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);

我安装了WCF REST StarterKit Preview 2并添加了Microsoft.Http引用。但是HttpContent没有CreateJsonDataContract?在更改为HttpContentExtensions.CreateJsonDataContract()后,它工作了。谢谢
var content = HttpContent.Create("{...Json...}", "application/json");