zoukankan      html  css  js  c++  java
  • 在Winform,Silvelight,WPF等程序中访问Asp.net MVC web api

    Asp.net mvc 4中出现的web api是用来实现REST.

    关于什么是REST,可以看这里http://zh.wikipedia.org/zh/REST

    通过ajax等访问 web api非常方便,但是如何在Winform, Silverlight等访问web api呢?

    通过搜索,发现了已经有人做过这个东西了,就是RestSharp.

    http://restsharp.org/

    https://github.com/restsharp/RestSharp

     RestSharp不只是访问web api, 访问其他平台的Rest API也是一样。

    看看介绍的使用,无论是post数据,文件,格式化返回数据,异步请求都非常方便:

    var client = new RestClient("http://example.com");
    // client.Authenticator = new HttpBasicAuthenticator(username, password);
    
    var request = new RestRequest("resource/{id}", Method.POST);
    request.AddParameter("name", "value"); // adds to POST or URL querystring based on Method
    request.AddUrlSegment("id", 123); // replaces matching token in request.Resource
    
    // add parameters for all properties on an object
    request.AddObject(object);
    
    // or just whitelisted properties
    request.AddObject(object, "PersonId", "Name", ...);
    
    // easily add HTTP Headers
    request.AddHeader("header", "value");
    
    // add files to upload (works with compatible verbs)
    request.AddFile(path);
    
    // execute the request
    RestResponse response = client.Execute(request);
    var content = response.Content; // raw content as string
    
    // or automatically deserialize result
    // return content type is sniffed but can be explicitly set via RestClient.AddHandler();
    RestResponse<Person> response2 = client.Execute<Person>(request);
    var name = response2.Data.Name;
    
    // or download and save file to disk
    client.DownloadData(request).SaveAs(path);
    
    // easy async support
    client.ExecuteAsync(request, response => {
        Console.WriteLine(response.Content);
    });
    
    // async with deserialization
    var asyncHandle = client.ExecuteAsync<Person>(request, response => {
        Console.WriteLine(response.Data.Name);
    });
    
    // abort the request on demand
    asyncHandle.Abort();

    Creative Commons License

    本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名justrun(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言

  • 相关阅读:
    全选、反选和不选
    树状图
    年月日选择器
    细谈HTML5
    再谈HTML
    FlashFXP 破解代码
    文件上传示例
    PHP聊天室框架
    JS判断是否来自手机移动端的访问,并跳转
    JQUERY知识总结
  • 原文地址:https://www.cnblogs.com/JustRun1983/p/2760994.html
Copyright © 2011-2022 走看看