【问题标题】:C# REST API Client [closed]C# REST API 客户端 [关闭]
【发布时间】:2011-06-25 14:59:13
【问题描述】:

我已成功创建驻留在我的服务器上的 PHP REST API。我现在正在寻找通过我的 WPF C# 应用程序创建到此的客户端连接。我找到了this,但我的 API 需要通过 HTTP 标头发送 API 密钥,我看不出你可以这样做。我还使用 CURL 创建了一个 PHP REST 客户端,它非常简单,并希望 C# 中内置一些东西来处理对 REST 服务的请求。

如果有人能指出他们看过的教程或图书馆的方向,我将不胜感激。

谢谢。

【问题讨论】:

    标签: c# wpf api rest


    【解决方案1】:

    看看RESTSharp。非常强大且易于使用。

    也适用于所有平台:Web、Windows、WCF、Monotouch、Windows Phone

    【讨论】:

    • 完美,正是我想要的!
    【解决方案2】:

    您可能还想查看 Hammock.NET @http://hammock.codeplex.com/;和它一起工作很愉快。您真的完全不需要 WCF。

    【讨论】:

      【解决方案3】:

      您可以使用HttpWebRequestWebClient 发出Web 请求,就像在PHP 客户端中使用CURL 一样...

      如果您需要处理基于 JSON 的响应,JSON.Net 是一个很棒的库。

      HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://a/rest/uri");
      request.Method = "POST";
      request.Headers.Add("Authorization: OAuth " + accessToken);
      string postData = string.Format("param1=something&param2=something_else");
      byte[] data = Encoding.UTF8.GetBytes(postData);
      
      request.ContentType = "application/x-www-form-urlencoded";
      request.Accept = "application/json";
      request.ContentLength = data.Length;
      
      using (Stream requestStream = request.GetRequestStream())
      {
          requestStream.Write(data, 0, data.Length);
      }
      
      try
      {
          using(WebResponse response = request.GetResponse())
          {
              // Do something with response
          }
      }
      catch (WebException ex)
      {
          // Handle error
      }
      

      【讨论】:

        【解决方案4】:

        您还可以在 .NET 4.5 中使用 HttpClient
        如果您使用的是 .NET 4.0,HttpClient API 在Microsoft.Net.Http nuget 中可用。

        【讨论】:

        • 这是根据新的 DotNet 4.5 库的答案。
        【解决方案5】:

        如果您的 PHP REST API 后端使用 Swagger 记录,例如使用swagger-php,您可以使用swagger-codegen 使用描述您的PHP 后端的Swagger 规范以C#、Java、PHP、Ruby、Python 等方式生成API 客户端。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多