回到目录

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 = "";
//设置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 = "";
//设置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类,大同小异!

回到目录

WebApi系列~通过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如何去调用一个标准的Web Api接口,并且我们知道了Post,Put方法只能有一个FromBody参数,再有多个参数时,上讲提到,需要将它封装成一个对 ...

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

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

  4. 通过HttpClient来调用Web Api接口

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. asp.net mvc 事件顺序

    1. OnActionExecuting 2. Before return View() 3. OnActionExecuted 4. OnResultExecuting 5. Hello from  ...

  2. MVC文件上传和下载

    1.单个文件上传 HTML写法:form表单中加enctype="multipart/form-data" <form aciont="" method= ...

  3. dhtmlx相关

    主页:http://dhtmlx.com/ 文档地址:http://docs.dhtmlx.com/ 后台:https://dhtmlx.com/docs/products/dhtmlxConnect ...

  4. Win7 64位 VS2013环境编译Lua5.3.1

    主要参考这篇文章,原文有几个错误顺便改正了. 在Windows下使用Visual Studio编译Lua5.3 写本文时Lua官方网站放出的新版本为5.3.1,然后我不知道为啥,神奇的国内不能访问Lu ...

  5. ubuntu gcc-5 安装

    安装了一个ubuntu 15.10,没有集成vim,很失望,先安装个vim,sudo apt-get install vim. 开始获取g++-5: $ sudo add-apt-repository ...

  6. Linux下Chrome浏览器不支持WebGL的解决方式。

    今天使用Chrome浏览器,总是报这样一个错误: Uncaught TypeError: Cannot read property 'canvas' of null. 细看之下是无法获取WebGL上下 ...

  7. A List of Social Tagging Datasets Made Available for Research

    This list is not exhaustive - help expand it! Social Tagging Systems Research Group Source Year Obta ...

  8. [c语言]字符数组、字符串定义

    C语言中字符串通常用字符指针和字符数组来定义: char* pS="abcdef"; char s[]="abcdef"; 这两种方式都会在结尾为字符串隐式补结 ...

  9. [UE4][Custom Animation Graph Node]Evaluate Pose by Curve

    目的:根据曲线值获得当前动作帧.用于实现各种通过曲线同步的功能. 方法:继承FAnimNode_Base创建自定义动画节点.重写Evaluate部分.创建相应的AnimGraphNode.可参考前一篇 ...

  10. cordova for ios(android一样)添加插件

    1.进入当前工程文件夹 终端:cd ~/Desktop/ cd piao 2.添加插件 :cordova plugin add Basic device information (Device API ...