C#REST客户端示例?

C#REST客户端示例?,c#,wcf,rest,client,C#,Wcf,Rest,Client,我到处都找了,似乎什么也没找到 我正在尝试连接到我的REST(WCF)服务。在firefox中,它可以通过以下方式正常工作: http://localhost:1337/WCF.IService.svc/rest/Services?CostCentreNo=1&Filter=1 其中rest是端点地址; Services?CostCentreNo=1&Filter=1是带有参数的模板 下面是服务器契约点 [OperationContract] [WebGet(UriTe

我到处都找了,似乎什么也没找到

我正在尝试连接到我的REST(WCF)服务。在firefox中,它可以通过以下方式正常工作:

http://localhost:1337/WCF.IService.svc/rest/Services?CostCentreNo=1&Filter=1
其中
rest
是端点地址;
Services?CostCentreNo=1&Filter=1
是带有参数的模板

下面是服务器契约点

    [OperationContract]
    [WebGet(UriTemplate = "/Services?CostCentreNo={CostCentreNo}&Filter={Filter}")]
    List<Services> GetServices(Int32 CostCentreNo, Int32 Filter);
[运营合同]
[WebGet(UriTemplate=“/Services?CostCentreNo={CostCentreNo}&Filter={Filter}”)]
列出GetServices(Int32 CostCentreNo、Int32筛选器);
我可以从c#获取一个连接到这个的工作示例吗?

试试这个JSON:

String resonse = String.Empty;
HttpClient client = new HttpClient();

using (HttpResponseMessage httpResponse = client.Get("your_uri"))
{
   response = httpResponse.Content.ReadAsString();
}
此代码需要WCF Rest工具包中的
Microsoft.Http
Microsoft.Http.Extensions
DLL-。

请尝试以下JSON:

String resonse = String.Empty;
HttpClient client = new HttpClient();

using (HttpResponseMessage httpResponse = client.Get("your_uri"))
{
   response = httpResponse.Content.ReadAsString();
}

此代码需要WCF Rest Toolkit中的
Microsoft.Http
Microsoft.Http.Extensions
DLL-.

对于具有示例源的通用/动态解决方案,请参见对于具有示例源的通用/动态解决方案,请参见
通过扩展
System.ServiceModel.ClientBase
创建您自己的代理。REST服务上的每个方法都通过
通道
属性公开,因此您可以包装这些方法

[ServiceContract]
public interface IMyServiceContract
{
    [OperationContract]
    [WebGet(UriTemplate = "/ping")]
    string Ping();
}

public class ProxyClient : ClientBase<IMyServiceContract>, IMyServiceContract
{
    #region Implementation of IMyServiceContract

    public string Ping()
    {
        return Channel.Ping();
    }

    #endregion
}

public class Test
{
    // This assumes you have setup a client endpoint in your .config file
    // that is bound to IMyServiceContract.
    var client = new Client();

    System.Console("Ping replied: " + client.Ping());
}
[服务合同]
公共接口IMyServiceContract
{
[经营合同]
[WebGet(UriTemplate=“/ping”)]
字符串Ping();
}
公共类代理客户端:ClientBase、IMyServiceContract
{
#IMyServiceContract的区域实施
公共字符串Ping()
{
返回通道Ping();
}
#端区
}
公开课考试
{
//这假设您在.config文件中设置了客户端端点
//这是一项必须遵守的合同。
var client=new client();
控制台(“Ping回复:+client.Ping());
}

不幸的是,这是针对WCF消耗的,不能与REST完美配合,也就是说,它没有公开RESTful实现所必需的HTTP头。

通过扩展
System.ServiceModel.ClientBase来创建自己的代理。REST服务上的每个方法都通过
通道
属性公开,因此您可以包装这些方法

[ServiceContract]
public interface IMyServiceContract
{
    [OperationContract]
    [WebGet(UriTemplate = "/ping")]
    string Ping();
}

public class ProxyClient : ClientBase<IMyServiceContract>, IMyServiceContract
{
    #region Implementation of IMyServiceContract

    public string Ping()
    {
        return Channel.Ping();
    }

    #endregion
}

public class Test
{
    // This assumes you have setup a client endpoint in your .config file
    // that is bound to IMyServiceContract.
    var client = new Client();

    System.Console("Ping replied: " + client.Ping());
}
[服务合同]
公共接口IMyServiceContract
{
[经营合同]
[WebGet(UriTemplate=“/ping”)]
字符串Ping();
}
公共类代理客户端:ClientBase、IMyServiceContract
{
#IMyServiceContract的区域实施
公共字符串Ping()
{
返回通道Ping();
}
#端区
}
公开课考试
{
//这假设您在.config文件中设置了客户端端点
//这是一项必须遵守的合同。
var client=new client();
控制台(“Ping回复:+client.Ping());
}

不幸的是,这是针对WCF消费的,不能与REST完美配合,也就是说,它没有公开RESTful实现所必需的HTTP头。

创建一个客户端应用程序并添加服务引用?您是否尝试过这个[消费WCF服务]()就我所知,两者都只适用于SOAP(我刚刚再次检查)。我想测试REST在哪里工作。提供的答案是否回答了您的问题?创建一个客户端应用程序并添加一个服务引用?您是否尝试过此[使用WCF服务]()就我所知,两者都只适用于SOAP(我刚刚再次检查)。我想测试REST在哪里工作。提供的两个答案是否回答了您的问题?我缺少[WebGet….]属性。没有意识到客户端上需要这样做。我缺少[WebGet….]属性。没有意识到这是客户需要的。