NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
有些特殊需求,要CPS端请求某个接口 CPS的接口都需要先登录获取token 1、访问登录接口,获取token ~~~ //声明HttpClient  HttpClient nClient = new HttpClient(); //设置 基地址 host nClient.BaseAddress = new Uri("http://192.168.1.222:8000/"); //post请求的body内容 string content = "{\"tenancyName\": \"DEFAULT\",\"usernameOrEmailAddress\": \"admin\",\"password\": \"123qwe\"}"; var buffer = Encoding.UTF8.GetBytes(content); var byteContent = new ByteArrayContent(buffer); //添加头部ContentType  byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); // 发起http 的post 请求 HttpResponseMessage rest = await nClient.PostAsync("/api/Account/Authenticate", byteContent).ConfigureAwait(false); // 异步读取返回内容 string rs = await rest.Content.ReadAsStringAsync(); string token = ""; //序列化 返回的内容 List<KeyValuePair<string, string>> list = Json.JsonHelper.FromJson(rs); //List<KeyValuePair<string, string>> list = JsonConvert.DeserializeObject<List<KeyValuePair<string, string>>>(rs); 这种写法也可以试试 foreach (KeyValuePair<string, string> item in list) {     if (item.Key == "result") {         token = item.Value;     } } ~~~ 2、访问普通接口 ``` // 设置 头部的Authorization 的token值 nClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); string content = "{\"InOrOutBoxCode\": \""+input.InOrOutBoxCode+ "\",\"type\": \""+input.type + "\"}"; var buffer = Encoding.UTF8.GetBytes(content); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); HttpResponseMessage rest2 = await nClient.PostAsync("/api/services/expend/InStrockProduct/getInStrockProductReviewByInOrOutCode", byteContent).ConfigureAwait(false); string aa = await rest2.Content.ReadAsStringAsync(); InStrockProductSuccessDto2 dto = Json.JsonHelper.FromJson<InStrockProductSuccessDto2>(aa); ``` 3、GET请求 ~~~ HttpClient nClient = new HttpClient();            nClient.DefaultRequestHeaders.TryAddWithoutValidation("token", "YXBpLXVzZXIsMTkxNDk5Mjg3MjYxMCxkYTBhMjRhY2MwODQyODk5MTJlMzQ3M2JhNjc5YjJjNw");            // 传输的类型            nClient.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json;charset=UTF-8");            string mapJson = await nClient.GetStringAsync("http://192.168.1.203/api/v2/maps/2");            AgvMapDto mapDto = (AgvMapDto)JsonConvert.DeserializeObject(mapJson); ~~~