C# 如何使用带有RESTSharp的HTTP链接谓词请求API?

C# 如何使用带有RESTSharp的HTTP链接谓词请求API?,c#,windows-phone-8,hyperlink,restsharp,httpverbs,C#,Windows Phone 8,Hyperlink,Restsharp,Httpverbs,我目前正在开发一个WindowsPhone8应用程序,使用RESTAPI,并使用著名的库“RESTSharp”请求API服务 我的问题是restapi公开了一个需要使用的方法,而我找不到任何与RESTSharp使用这个动词相关的东西(更不用说使用如此通用的术语“link”) 因此,如果有人能给我一些建议,或者只是给我指出正确的方向,那将是非常感谢你 请随意询问更多详细信息。最初,我认为使用RestSharp无法做到这一点,因为接口使用枚举来表示HTTP方法。然而,RestSharp似乎确实支持通

我目前正在开发一个WindowsPhone8应用程序,使用RESTAPI,并使用著名的库“RESTSharp”请求API服务

我的问题是restapi公开了一个需要使用的方法,而我找不到任何与RESTSharp使用这个动词相关的东西(更不用说使用如此通用的术语“link”)

因此,如果有人能给我一些建议,或者只是给我指出正确的方向,那将是非常感谢你


请随意询问更多详细信息。

最初,我认为使用RestSharp无法做到这一点,因为接口使用枚举来表示HTTP方法。然而,RestSharp似乎确实支持通过类上的
ExecuteAsGet
ExecuteAsPost
方法使用非标准HTTP谓词。使用哪种方法取决于非标准HTTP方法的语义。如果请求有一个主体(或HTTP术语中的“实体”),那么您将使用
ExecuteAsPost
;如果没有,则使用
ExecuteAsGet

下面是一些示例代码,根据您的问题中引用的备忘录草稿中的一个示例,演示如何使用RestSharp进行链接请求

RestClient client = new RestClient("http://example.org");
RestRequest request = new RestRequest("/images/my_dog.jpg");
request.AddHeader("Link", "<http://example.org/profiles/joe>; rel=\"tag\"");
IRestResponse response = client.ExecuteAsGet(request, "LINK");
Debug.WriteLine((int)response.StatusCode + " " + response.StatusDescription);

对非标准方法的支持增加了一段时间。你可以做:

restClient.ExecuteAsPost(restRequest, "LINK") 
或者使用
ExecuteAsGet
。基本上,根据是传递查询字符串还是请求正文,使用一个或另一个


我个人觉得这是一个糟糕的API。新的
HttpClient
为非标准方法提供了更好的API。

目前,WP8应用的RestSharp API不支持ExecuteAsGet()。RestClient类中似乎存在一个HttpFactory。没有文档可读,但我会研究一下。WP8中应该有这些方法的异步版本。我已经更新了我的答案。感谢您提供这些详细信息,“ExecuteAsyncGet”是执行“链接”请求的赢家@Invvard-我在谈论RestSharp API。抱歉,我没有真正关注WP8标签。
restClient.ExecuteAsPost(restRequest, "LINK")