博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用httpclient异步调用WebAPI接口
阅读量:7032 次
发布时间:2019-06-28

本文共 2916 字,大约阅读时间需要 9 分钟。

最近的工作需要使用Bot Framework调用原有的WebAPI查询数据,查找了一些方法,大部分都是使用HttpClient调用的,现时贴出代码供参考

using System;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.Threading.Tasks;using System.Web;using System.Text;using Newtonsoft.Json;using System.Net;namespace esquel_LPD_Bot.LPDService{    public class GarmentStyleHelper    {        public async Task
GarmentStyleSearch(string pi_GarmentStyleNo) { string l_returnValue = string.Empty; string l_APIUrl = Common.ConfigHelper.GetConfigValue("LPD-GarmentStyleSearchAPIUrl"); Common.LPDAuthHelper LPDAuthClass = new Common.LPDAuthHelper(); try { if(string.IsNullOrEmpty( LPDAuthClass.UserName)|| string.IsNullOrEmpty(LPDAuthClass.UserName)) { throw new Exception("LPD Project Auth User Name Or Password Is Empty ."); } if (!string.IsNullOrEmpty(l_APIUrl) && !string.IsNullOrEmpty(pi_GarmentStyleNo)) { var request = new Model.SelectionFilter() { FilterType = Model.SelectionFilter.FilterTypeLeaf, Filters = new Model.SelectionFilter[] { }, AttributeName = "item_number", FilterValue = pi_GarmentStyleNo }; //-------------------------------------------------------------------------------------------- var handler = new HttpClientHandler() { AutomaticDecompression = System.Net.DecompressionMethods.GZip }; //handler.UseDefaultCredentials = true;//use default network利用的用户本机的网络,但因为需要布署到服务器,所以使用以下这一句 handler.Credentials=new NetworkCredential(LPDAuthClass.UserName, LPDAuthClass.PassWord);//设定权限,这一句比较痛苦,找了很久 using (var client = new HttpClient(handler)) { client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); var response = await client.PostAsync(l_APIUrl, new StringContent(JsonConvert.SerializeObject(request).ToString(), Encoding.UTF8, "application/json")); response.EnsureSuccessStatusCode(); string l_getreturn = await response.Content.ReadAsStringAsync(); l_returnValue = l_getreturn; } } } catch (Exception ex) { } return l_returnValue; } }}

 参考地址:

http://www.cnblogs.com/validvoid/p/demystifying-httpclient-apis-in-the-uwp.html 使用身份验证凭据

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

转载于:https://www.cnblogs.com/weschen/p/6386149.html

你可能感兴趣的文章
深入理解Java虚拟机(类加载机制)
查看>>
在500jsp错误页面获取错误信息
查看>>
iOS-CALayer遮罩效果
查看>>
为什么需要版本管理
查看>>
五、Dart 关键字
查看>>
React Native学习笔记(一)附视频教学
查看>>
记Promise得一些API
查看>>
javascript事件之调整大小(resize)事件
查看>>
20145234黄斐《Java程序设计》第六周学习总结
查看>>
【CLRS】《算法导论》读书笔记(四):栈(Stack)、队列(Queue)和链表(Linked List)...
查看>>
hibernate 和 mybatis区别
查看>>
互联网广告综述之点击率特征工程
查看>>
HDU3421 Max Sum II【序列处理】
查看>>
POJ NOI MATH-7653 地球人口承载力估计
查看>>
iOS UI高级之网络编程(HTTP协议)
查看>>
使用cocoaPods import导入时没有提示的解决办法
查看>>
iOS数据持久化存储之归档NSKeyedArchiver
查看>>
JavaScript面向对象
查看>>
Intellij修改模板代码
查看>>
2.页面布局示例笔记
查看>>