HttpClient _httpClient = new HttpClient();
var clientId = Config.GetValue("AuthUser");
var clientSecret = Config.GetValue("AuthPass"); var apiHost = Config.GetValue("ApiHost");
_httpClient.BaseAddress = new Uri(apiHost); var parameters = new Dictionary<string, string>();
parameters.Add("grant_type", "password");
parameters.Add("username", account);
parameters.Add("password", password); _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(clientId + ":" + clientSecret))
); var response = await _httpClient.PostAsync("/token", new FormUrlEncodedContent(parameters));
var responseValue = await response.Content.ReadAsStringAsync();
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
var access_token = JObject.Parse(responseValue)["access_token"].Value<string>();
return new TokenResult() { Message = "ok", access_token = access_token };
//return JObject.Parse(responseValue)["access_token"].Value<string>();
}
else
{
var modelstate = JObject.Parse(responseValue)["ModelState"][].Value<string>();
return new TokenResult() { Message = modelstate };
} //string url = Config.GetValue("ApiHost") + "/token";
////设置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>()
// {
// {"grant_type", "password"},//键名必须为空
// { "username", account},
// {"password", password },
// }); // //await异步等待回应 // var response = await http.PostAsync(url, content);
// //确保HTTP成功状态值
// response.EnsureSuccessStatusCode();
// //await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
// var responseValue = await response.Content.ReadAsStringAsync();
// if (response.StatusCode == System.Net.HttpStatusCode.OK)
// {
// return JObject.Parse(responseValue)["access_token"].Value<string>();
// }
// else
// {
// return string.Empty;
// }
//}

VS2015 正式版中为什么没有了函数前面引用提示了?的更多相关文章

  1. 把 MWeb Lite 的文档库文档和数据搬到 MWeb 正式版中

    MWeb Lite 版的文档库中的文档要搬到 MWeb 正式版中,如果 Lite 版的文档中没有图片或者只有少量图片,可以用导入导出为 Markdown 的方法. 否则的话请用以下方式(注意下面这个方 ...

  2. 体验VS2015正式版

    初次体验VS2015正式版,安装详细过程.   阅读目录 介绍 安装 介绍    纽约时间7月20日,微软发布了vs 2015 正式版,换算到我们的北京时间就是晚上了,今天回到家里,就下下来了,装上去 ...

  3. 初次体验VS2015正式版,安装详细过程。

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 安装 其他 本文版权归mephi ...

  4. 【VS2015正式版下载】Visual Studio 2015 正式版开放下载 Visual Studio 2015 神key

    说明: 微软定于2015年7月20日发布Visual Studio 2015正式版,目前其官方网站已经提供正式版本的下载. 可在https://www.visualstudio.com/en-us/d ...

  5. javascript 在一个函数参数中包含另一个函数的引用

    javascript函数的参数包含另一个函数的情形: <script> //b函数的参数func为另一个函数 function b(a, func) {  alert(a); //调用参数 ...

  6. Win10年度更新开发必备:VS2015 正式版下载汇总

    ============================================================================ 微软在07月20日发布了Visual Stud ...

  7. vue echarts中绑定的click函数无法引用vue实例data里面的数据

    在使用echarts的时候,需要在触发click事件之后去修改实例data里面的数据,可是发现用this引用后总是出现undefined, 解决办法: myChart.on('click', (par ...

  8. 微软vs2015先行,Visual Studio 2015正式版离线iso及在线下载(附key)附带百度云盘地址

    win10正式版发布之前我们迎来了vs2015正式版,迫不及待要下载朋友可以看看 Visual Studio Community 2015简体中文版(社区版,针对个人免费): 在线安装exe:http ...

  9. web appbuilder 正式版用yo esri-appbuilder-js:widget生成widget读取不到config解决方案

           对于在webappBuilder正式版中,如果用yo esri-appbuilder-js:widget生成的widget,在写widget的时候widget里面的config.json ...

随机推荐

  1. STM32 100 pin 多个外设译码方案 - SN74LVC1G29

    http://www.ti.com/lit/ds/symlink/sn74lvc1g29.pdf

  2. 我对NHibernate的感受(1):对延迟加载方式的误解

    NHibernate是.NET平台上最著名的ORM框架,虽说出身于Java平台上的Hibernate,但是从外部看来这几乎就是一个.NET平台上的原生产品:有自己的社区,有自己的用户,有自己的商业支持 ...

  3. debian安装ibus中文输入法

    转载自:http://www.shunix.com/debian-ibus-chinese-470/ 以前在debian一直用scim,但是那个真的很不好用,现在用的是debian squeeze还是 ...

  4. 树状结构 Tree data structure in C#

    delegate void TreeVisitor<T>(T nodeData); class NTree<T> { private T data; private Linke ...

  5. iOS Sprite Kit最新特性Physics Field虚拟物理场Swift測试

    在WWDC2014上,Sprite Kit又有了非常多新的提升! 当中一个非常有意思的东西就是Physics Field!也就是物理场! 这意味着我们在Sprite kit上编写虚拟物理场的游戏将变得 ...

  6. 什么是软件project?

    Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNo ...

  7. Iptables静态防火墙基础教程

    文章目录检查Iptables是否安装Iptables相关的文件配置Iptables规则自定义规则保存规则 Iptables对于刚入门Linux的新手都比较难理解和配置.但是如果你掌握了其中的诀窍,你就 ...

  8. 经典数独游戏+数独求解器—纯C语言实现

    "心常乐数独小游戏"(下面简称"本软件")是一款windows平台下的数独游戏软件. 本软件是开源.免费软件. 本软件使用纯C语言编写,MinGW编译,NSIS ...

  9. [MAC OS] NSButton tag 获取

    @IBAction func switchContentLayout(_ sender: Any) { let button : NSButton = sender as! NSButton;}

  10. 分布式缓存系统Memcached在Asp.net下的应用

    Memcached 是一个高性能的分布式内存对象缓存系统.用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来降低读取数据库的次数,从而提高动态.数据库驱动站点的速度. Memcache ...