c# - 如何使用带有 RESTSharp 的 HTTP LINK 动词请求 API?

标签 c# windows-phone-8 hyperlink restsharp http-verbs

我目前正在开发 Windows Phone 8 应用程序,使用 REST API,并且我正在使用众所周知的库“RESTSharp”来请求 API 服务。

我的问题是 REST API 公开了一个需要使用 HTTP LINK verb 的方法并且我找不到任何与将此动词与 RESTSharp 一起使用相关的内容(甚至更多的是使用如此通用的术语“链接”)。

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

请随时询问更多详情。

最佳答案

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

下面是一些示例代码,演示了如何使用 RestSharp 执行 LINK 请求,基于您问题中引用的草稿备忘录中的示例之一。

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);

更新

看来你是对的,WP8项目不包括 RestClient.Sync.cs ,其中包含同步 ExecuteAsGet<T>ExecuteAsPost<T>方法。但是有异步版本,ExecuteAsyncGet<T>ExecuteAsyncPost<T>在 WP8 中应该可以使用。这两个都接受字符串 httpMethod参数也是如此。

client.ExecuteAsyncGet(request, (response, handle) =>
    {
        Debug.WriteLine((int)response.StatusCode + " " + response.StatusDescription);
    }, 
    "LINK");

关于c# - 如何使用带有 RESTSharp 的 HTTP LINK 动词请求 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19755385/

相关文章:

c# - 无法在 MVVM UWP 中取消选择 ListView 项

c# - 下载动态文件

c# - 使用 Font 创建条形码 - 这是否正确?我错过了什么吗?

c# - 文本框只能大写

com - 无法将对 COM dll 的引用添加到 WP8 项目

javascript - 删除超链接但保留文本?

javascript - 通过返回 false 来阻止链接打开 - 不起作用 (javascript)

c# - 自定义 MembershipProvider 初始化方法

c# - 尝试通过微软示例理解 MVVM

html - 如何通过html代码将我的网站设置为浏览器的主页