C# REST API客户端

26
我已成功创建了一个托管在我的服务器上的PHP REST API。现在我想通过我的WPF C#应用程序创建客户端连接。我找到了这个,但我的API需要通过HTTP标头发送API密钥,并且我看不到这个方案可以实现。我还使用CURL创建了一个PHP REST客户端,非常容易使用,并希望C#内置有处理对REST服务的请求的东西。
如果有人能指向他们看过的教程或库,我将不胜感激。
谢谢。
5个回答

51

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

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


完美,正是我所寻找的! - Joel Kennedy

13
你可以使用HttpWebRequestWebClient来进行网络请求,就像在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
}

6

同时,您可以在.NET 4.5中使用HttpClient。如果您正在使用.NET 4.0,则可以在Microsoft.Net.Http nuget中获取HttpClient API。


这是基于新的DotNet 4.5库的答案。 - Askolein

5

1
如果您的PHP REST API后端使用Swagger进行文档记录,例如使用swagger-php,则可以使用swagger-codegen生成C#,Java,PHP,Ruby,Python等API客户端,使用描述您的PHP后端的Swagger规范。请注意保留HTML标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接