用Web API Client 调用 Web API
2024-08-28 09:29:20
安装Web API客户端库
右键单击项目,选择管理 NuGet程序包,选择联机选项,选择全部,在搜索框中输入“Microsoft.AspNet.WebApi.Client”,
搜索结果就是要安装的类库,单击安装到完成。NuGet会自动添加引用
需要引入的命名空间:
using System.Net.Http;
using System.Net.Http.Headers;
Get调用
HttpClient初始化
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:9000/");
// Add an Accept header for JSON format.
// 为JSON格式添加一个Accept报头
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.GetAsync("api/GetEmployees").Result; //转换为同步方法
response 中可以直接拿到http请求状态。
if (response.IsSuccessStatusCode) //请求成功
{
//从方法名中可以看出是异步调用,取Result后,就变成同步了,
var results = response.Content.ReadAsAsync<IEnumerable<Employee>>().Result;
foreach (var p in results)
{
Console.WriteLine("{0}\t{1};\t{2}", p.Name, p.Age, p.Sex);
}
}
else
{
Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
}
Post调用
using System.Net.Http;
using System.Net.Http.Headers; //api 为 http://localhost:8000/Employee/Update
//传入参数 name,age,sex
HttpClient client = new HttpClient();
public override bool SendMessage()
{
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json")); var paras= new { name ="", age =,sex="男" };
try
{
var response = client.PostAsJsonAsync(" http://localhost:8000/Employee/Update", paras).Result;
//如果调用失败,抛出异常
response.EnsureSuccessStatusCode();
if (response.IsSuccessStatusCode)
{
var result = response.Content.ReadAsStringAsync(); //result.Result 是一个json字符串,解析后就可以拿到调用后的返回值
return false;
}
else
{
return false;
}
}
catch (Exception ex)
{ return false;
} return true;
}
put,和delete方法调用同post类似,在此不再介绍。
最新文章
- thinkphp在模型中自动完成session赋值
- Win7 64位命令行编译cuda及设置Windows显卡响应时间
- ajax教程完整版
- Best practice: escape, or encodeURI / encodeURIComponent
- mysql基本sql语句大全(提升用语篇)
- kuangbin_ShortPath N (POJ 1847)
- caffe: test code 执行出问题: Check failed: FLAGS_weights.size() >; 0 (0 vs. 0) Need model weights to score.
- 四.CSS声明
- placeholder
- 2014年度辛星解读css第四节
- Cocos2d-X中的坐标系
- redhat6.4下安装Oracle11g
- 空a标签 a标签空的情况下 IE6 IE7下点击无效
- Mac下安装多版本python
- WPF window 子窗口反馈效果(抖动/阴影渐变)
- Python3学习之路~5.10 PyYAML模块
- 拉普拉斯平滑处理 Laplace Smoothing
- PHP:第四章——PHP数组处理函数
- XE4 TStringDynArray 比 c6 的TStringList 好用 字符串 分解 分割 转换 TByteDynArray
- SQL CAST与CONVERT区别
热门文章
- 【置换群/模拟】NOIP2005-篝火晚会
- 【树状数组逆序对】USACO.2011JAN-Above the median
- json,xml,html三种数据格式
- 广义线性模型(logistic和softmax)
- 8VC Venture Cup 2016 - Elimination Round F. Group Projects dp
- hibernate处理视图问题(记录)
- opencv中SiftDescriptorExtractor所做的SIFT特征向量提取工作简单分析
- 查看Ubuntu服务器的版本信息
- 用latex写毕业论文
- iOS:时间格式化(标准时间转为时间戳、时间戳转为标准时间、时间戳转为日期)