回到目录

HttpClient是一个被封装好的类,主要用于Http的通讯,它在.net,java,oc中都有被实现,当然,我只会.net,所以,只讲.net中的HttpClient去调用Web Api的方法,基于api项目的特殊性,它需要有一个完全安全的环境,所以,你的api控制器看起来有点特别,只有5个方法,而且都是标准的http方法,我觉得这种设计很不错,很清晰,而且为了实现安全性,它不支持使用传统的表单数据,取而代之的是FromBody参数,它指拿HttpRequestMessage里参数,而不是所有的Request数据,这是基于安全方面的考虑。

一 Api接口参数的标准性

Get方式,可以有多个重载,有多个参数

POST方式,只能有一个参数,并且用[FromBody]约束,如果有多个参数,需要以对象的方式进行传递

Put方式,只能有两个参数,其中一个是通过Request.QueryString方式进行传递的,作为要更新对象的主键,别一个是[FromBody]字段,也是一个字段,如果多个字段需要把它封装成对象

标准接口如图

aaarticlea/png;base64,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" alt="" />

二 调用方,参数的标准性

在客户端进行接口调用时,我们以网页端为例,看一下网页端进行ajax跨域请求的代码

Get方式

    $.ajax({
url: "http://localhost:52824/api/register",
type: "GET",
success: function (data) {
console.log("json:" + data);
}
});

Post方式

     $.ajax({
url: "http://localhost:52824/api/register",
type: "POST",
data: { '': '1' },//这里键名称必须为空,多个参数请传对象,api端参数名必须为value
success: function (data) {
console.log("post:" + data);
}
});

三 在控制台中实现Get方式获取接口数据(只有异步实现)

      /// <summary>
/// HttpClient实现Get请求
/// </summary>
static async void dooGet()
{
string url = "http://localhost:52824/api/register?id=1&leval=5";
//创建HttpClient(注意传入HttpClientHandler)
var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip }; using (var http = new HttpClient(handler))
{
//await异步等待回应
var response = await http.GetAsync(url);
//确保HTTP成功状态值
response.EnsureSuccessStatusCode(); //await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
Console.WriteLine(await response.Content.ReadAsStringAsync());
}
}

四 在控制台中实现Post方式提交数据(只有异步实现)

     /// <summary>
/// HttpClient实现Post请求
/// </summary>
static async void dooPost()
{
string url = "http://localhost:52824/api/register";
var userId = "1";
//设置HttpClientHandler的AutomaticDecompression
var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
//创建HttpClient(注意传入HttpClientHandler)
using (var http = new HttpClient(handler))
{
//使用FormUrlEncodedContent做HttpContent
var content = new FormUrlEncodedContent(new Dictionary<string, string>()
{
{"", userId}//键名必须为空
}); //await异步等待回应 var response = await http.PostAsync(url, content);
//确保HTTP成功状态值
response.EnsureSuccessStatusCode();
//await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
Console.WriteLine(await response.Content.ReadAsStringAsync());
} }

五 在控制台中实现Put方式提交数据(只有异步实现)

        /// <summary>
/// HttpClient实现Put请求
/// </summary>
static async void dooPut()
{
string url = "http://localhost:52824/api/register?userid=" + userId;
var userId = "1";
//设置HttpClientHandler的AutomaticDecompression
var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
//创建HttpClient(注意传入HttpClientHandler)
using (var http = new HttpClient(handler))
{
//使用FormUrlEncodedContent做HttpContent
var content = new FormUrlEncodedContent(new Dictionary<string, string>()
{
{"", "数据"}//键名必须为空
}); //await异步等待回应 var response = await http.PutAsync(url, content);
//确保HTTP成功状态值
response.EnsureSuccessStatusCode();
//await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
Console.WriteLine(await response.Content.ReadAsStringAsync());
} }

OK,到这里,我们的客户端如何去调用web api就讲完了,事实上,手机端,平板端也是相关的方式去调用的,它们也都有自己的HttpClient类,大同小异!

http://www.cnblogs.com/lori/p/4045413.html

通过HttpClient来调用Web Api接口的更多相关文章

  1. Http下的各种操作类.WebApi系列~通过HttpClient来调用Web Api接口

    1.WebApi系列~通过HttpClient来调用Web Api接口 http://www.cnblogs.com/lori/p/4045413.html HttpClient使用详解(java版本 ...

  2. WebApi系列~通过HttpClient来调用Web Api接口

    回到目录 HttpClient是一个被封装好的类,主要用于Http的通讯,它在.net,java,oc中都有被实现,当然,我只会.net,所以,只讲.net中的HttpClient去调用Web Api ...

  3. WebApi系列~通过HttpClient来调用Web Api接口~续~实体参数的传递

    回到目录 上一讲中介绍了使用HttpClient如何去调用一个标准的Web Api接口,并且我们知道了Post,Put方法只能有一个FromBody参数,再有多个参数时,上讲提到,需要将它封装成一个对 ...

  4. 通过HttpClient来调用Web Api接口~续~实体参数的传递

    并且我们知道了Post,Put方法只能有一个FromBody参数,再有多个参数时,上讲提到,需要将它封装成一个对象进行传递,而这讲主要围绕这个话题来说,接口层添加一个新类User_Info,用来进行数 ...

  5. 通过HttpClient来调用Web Api接口,实体参数的传递

    下面定义一个复杂类型对象 public class User_Info { public int Id { get; set; } public string Name { get; set; } p ...

  6. WebApi系列~通过HttpClient来调用Web Api接口~续~实体参数的传递 【转】

    原文:http://www.cnblogs.com/lori/p/4045633.html 下面定义一个复杂类型对象 public class User_Info { public int Id { ...

  7. c# 【MVC】WebApi通过HttpClient来调用Web Api接口

    /// <summary> /// HttpClient实现Post请求(异步) /// </summary> static async void dooPost() { st ...

  8. WebApi~通过HttpClient来调用Web Api接口

    异步请求 ///<summary> /// HttpClient实现Post请求(异步) /// </summary> static async void dooPost() ...

  9. 【WebApi】通过HttpClient调用Web Api接口

    HttpClient是一个封装好的类,它在很多语言中都有被实现,现在HttpClient最新的版本是4.5. 它支持所有的http方法,自动转向,https协议,代理服务器. 一.Api接口参数标准化 ...

随机推荐

  1. android 点九PNG技术 适应不同分辨率 完美显示效果

    .9.png是一种非失真性压缩位图图形文件格式.PNG格式是非失真性压缩的,允许使用类似于GIF格式的调色板技术,支持真彩色图像,并具备阿尔法通道(半透明)等特性.现在有很多人使用PNG格式于互联网及 ...

  2. Linux命令行通配符

    如果我们想对一类文件批量操作,例如批量查看硬盘文件属性,那么正常命令是如下所示: [root@localhost Desktop]# ls /dev/sda1 [root@localhost Desk ...

  3. SUN dataset图像数据集下载

    SUN dataset数据集,有两个不错的网址: http://vision.princeton.edu/projects/2010/SUN/ (普林斯顿大学) http://groups.csail ...

  4. Linux 下sleep()函数

    调试程序发现起了一个子线程后,主线程上的sleep不生效了,看到这才明白... — Function: unsigned int sleep (unsigned int seconds) The sl ...

  5. Ubuntu 14.04怎样升级到Ubuntu 14.10

    Ubuntu 14.04怎样升级到Ubuntu 14.10     Ubuntu 14.10 Utopic Unicorn 将在10月23日正式发布,9月25日最终测试版本已经发布,Ubuntu 14 ...

  6. Oracle Order Management DropShip Flow for R12

    Oracle Order Management DropShip Flow for R12 Email ThisBlogThis!Share to TwitterShare to FacebookSh ...

  7. Hopfield模型

    1982年,J.Hopfield提出了可用作联想存储器的互连网络,这个网络称为Hopfield网络模型,也称Hopfield模型.Hopfield神经网络模型是一种循环神经网络,从输出到输入有反馈连接 ...

  8. java中String类学习

    java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度. (3)charAT:字符操作,按照索引值获得字符串中的指定字符 ...

  9. 【笨嘴拙舌WINDOWS】窗体样式

    "眼睛是人类心灵的窗口,打开窗口,你就能看到整个世界" 在PC时代,计算机的显示屏就是真个世界,WINDOWS将真个世界分解为一个个的窗口,每个窗口有自己的容貌,下面我们将一一揭开 ...

  10. CSS3之创建透明边框三角

    简述 在前面,我们分享过关于三角的实现方式,主要根据border属性来设置,下面我们来实现上.下.左.右各种不同颜色的三角. 简述 实现 效果 源码 实现 效果 源码 <!DOCTYPE htm ...