1. HttpClient _httpClient = new HttpClient();
  2. var clientId = Config.GetValue("AuthUser");
  3. var clientSecret = Config.GetValue("AuthPass");
  4.  
  5. var apiHost = Config.GetValue("ApiHost");
  6. _httpClient.BaseAddress = new Uri(apiHost);
  7.  
  8. var parameters = new Dictionary<string, string>();
  9. parameters.Add("grant_type", "password");
  10. parameters.Add("username", account);
  11. parameters.Add("password", password);
  12.  
  13. _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
  14. "Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(clientId + ":" + clientSecret))
  15. );
  16.  
  17. var response = await _httpClient.PostAsync("/token", new FormUrlEncodedContent(parameters));
  18. var responseValue = await response.Content.ReadAsStringAsync();
  19. if (response.StatusCode == System.Net.HttpStatusCode.OK)
  20. {
  21. var access_token = JObject.Parse(responseValue)["access_token"].Value<string>();
  22. return new TokenResult() { Message = "ok", access_token = access_token };
  23. //return JObject.Parse(responseValue)["access_token"].Value<string>();
  24. }
  25. else
  26. {
  27. var modelstate = JObject.Parse(responseValue)["ModelState"][].Value<string>();
  28. return new TokenResult() { Message = modelstate };
  29. }
  30.  
  31. //string url = Config.GetValue("ApiHost") + "/token";
  32. ////设置HttpClientHandler的AutomaticDecompression
  33. //var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
  34. ////创建HttpClient(注意传入HttpClientHandler)
  35. //using (var http = new HttpClient(handler))
  36. //{
  37. // //使用FormUrlEncodedContent做HttpContent
  38. // var content = new FormUrlEncodedContent(new Dictionary<string, string>()
  39. // {
  40. // {"grant_type", "password"},//键名必须为空
  41. // { "username", account},
  42. // {"password", password },
  43. // });
  44.  
  45. // //await异步等待回应
  46.  
  47. // var response = await http.PostAsync(url, content);
  48. // //确保HTTP成功状态值
  49. // response.EnsureSuccessStatusCode();
  50. // //await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
  51. // var responseValue = await response.Content.ReadAsStringAsync();
  52. // if (response.StatusCode == System.Net.HttpStatusCode.OK)
  53. // {
  54. // return JObject.Parse(responseValue)["access_token"].Value<string>();
  55. // }
  56. // else
  57. // {
  58. // return string.Empty;
  59. // }
  60. //}

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. HDU 5280 Senior&#39;s Array 最大区间和

    题意:给定n个数.要求必须将当中某个数改为P,求修改后最大的区间和能够为多少. 水题.枚举每一个区间.假设该区间不改动(即改动该区间以外的数),则就为该区间和,若该区间要改动,由于必须改动,所以肯定是 ...

  2. OllyDbg 使用笔记 (十二)

    OllyDbg 使用笔记 (十二) 參考 书:<加密与解密> 视频:小甲鱼 解密系列 视频 演示样例程序下载地址:http://pan.baidu.com/s/1eQiV6aI 安装好程序 ...

  3. 在没有界面的类中,实现弹出UIAlertView || 在没有界面的类中,刷新程序界面 思路

    +(DisplayErrorMsg *)sharedDisplayErrorMsg { static DisplayErrorMsg *instance = nil; @synchronized(in ...

  4. 使用 SQLiteManager 操作 sqlite3 数据库

    SQLiteManager https://github.com/misato/SQLiteManager4iOS 本人以前从事过嵌入式开发,后来转职为iOS开发,即使如此,也绝不想去碰C语言级别的面 ...

  5. java 数据流的处理

    字节流类 功能简单介绍 DataInputStream 包含了读取Java标准数据类型的输入流 DataOutputStream 包含了写Java标准数据类型的输出流 ByteArrayInputSt ...

  6. C语言项目:学生成绩管理系统

    C语言项目:学生成绩管理系统    1.数据结构:学生信息:学号.姓名.年龄.性别.3课成绩    2.功能:   (1)增加学生记录    (2)  删除学生记录    (3)  查找学生信息(学号 ...

  7. Objective-C-代码块Block回顾

    OC中的代码块是iOS4.0+ 和Mac OS X 10.6+ 引进的对C语言的扩展,用来实现匿名函数的特性.类似于其他语言脚本语言或者编程语言中的闭包或者是Lambda表达式,可能第一眼看上去很怪异 ...

  8. Best Time to Buy and Sell Stock III leetcode java

    题目: Say you have an array for which the ith element is the price of a given stock on day i. Design a ...

  9. spring cloud-给Eureka Server加上安全的用户认证

    前言 在前面的一篇文章中 spring cloud中启动Eureka Server 我们启动了Eureka Server,然后在浏览器中输入http://localhost:8761/后,直接回车,就 ...

  10. css表格单元格中的长文本的显示问题

    自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的方法 对于div,p等块级元素 正常文字的换行(亚洲文字和非亚洲文字)元素拥 ...