Пример клиента C # REST? - PullRequest
       15

Пример клиента C # REST?

1 голос
/ 29 сентября 2011

Я искал везде, и, похоже, ничего не работает.

Я пытаюсь подключиться к моей службе 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);

Могу ли я получить рабочий пример подключения к этому, пожалуйста, от c # ..

Ответы [ 3 ]

4 голосов
/ 21 октября 2011

Создайте свой собственный прокси, расширив System.ServiceModel.ClientBase<IYourServiceContract>. Каждый из ваших методов в службе REST предоставляется через свойство Channel, поэтому вы можете обернуть их.

[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());
}

К сожалению, это нацелено на потребление WCF и не работает идеально с REST, то есть не предоставляет заголовки HTTP, которые необходимы для реализации RESTful.

2 голосов
/ 29 сентября 2011

Попробуйте это для JSON:

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

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

Этот код требует dll Microsoft.Http и Microsoft.Http.Extensions из WCF Rest Toolkit - http://aspnet.codeplex.com/releases/view/24644.

0 голосов
/ 29 сентября 2011

Обобщенное / динамическое решение с источником выборки см. http://www.nikhilk.net/CSharp-Dynamic-Programming-REST-Services.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...