private async Task GetSite2()
            Sites.Add(new Site() { Name = "678", Id = 12, Longitude = 200, Color = "green" });
            using (HttpClient client = new HttpClient())
                Console.WriteLine("shixian");
                Sites.Add(new Site() { Name = "678", Id = 12, Longitude = 210, Color = "white" });
                // 构造请求数据
                LoginRequestData requestData = new LoginRequestData
                    userid = App.user.Name,
                    password = App.user.PassWord,
                    token = App.user.Token,
                //   options.Headers.Add("Authorization", "Bearer token");
                // 将请求数据序列化为JSON字符串
                string jsonRequestData = JsonConvert.SerializeObject(requestData);
                Console.WriteLine(jsonRequestData);
                // 构造HTTP请求
                HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://10.168.1.33:5003/Home/site");
                Console.WriteLine(request);
                //request.Content = new StringContent(jsonRequestData, Encoding.UTF8, "application/json");
                request.Headers.Add("Authorization", "Bearer" + requestData.token);
                    // 发送HTTP请求
                    HttpResponseMessage response = await client.SendAsync(request);
                    // 读取响应内容
                    string jsonResponseData = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(jsonResponseData);
                    JArray jsonArray = JArray.Parse(jsonResponseData);
                    Console.WriteLine(jsonArray);
                    // 将响应内容反序列化为响应数据模型
                    //dynamic data = JObject.Parse(jsonResponseData);
                    //   string  groupId = jsonResponseData["groupId"];
                    //string deviceInfos = jsonResponseData["deviceInfos"];
                    foreach (JObject obj in jsonArray)
                catch (Exception ex)
                    Console.WriteLine(ex.Message);
                finally
                    // 释放HttpClient实例
                    client.Dispose();

然后出错,并且出错位置在 HttpResponseMessage response = await client.SendAsync(request);这一行

这端代码在我之前的另一个项目中是能使用的
但是在这个项目中,什么都没有改就使用不了了
起初我比对了两个项目的框架以及引入的包
在引入一些乱七八遭的包之后又看了之前项目的using,看看是不是引入了其他的东西

最终原因:
低版本的net不能使用添加了请求体的httpclient的get方法,但是后端接口只能在接受了token等数据之后才能正常返回数据
但是我的ui有的不能在高版本的framework下使用

代码修改如下

private void GetSites() string url = "http://10.168.1.33:5003/Home/site"; // 创建请求 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; // 添加请求头 request.Headers.Add("Authorization", "Bearer " + App.user.Token); // 发送请求并获取响应 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) // 读取响应流 using (StreamReader reader = new StreamReader(response.GetResponseStream())) string jsonResponseData = reader.ReadToEnd(); Console.WriteLine(jsonResponseData); JArray jsonArray = JArray.Parse(jsonResponseData); Console.WriteLine(jsonArray); foreach (JObject obj in jsonArray) int id = (int)obj["id"]; string name = (string)obj["name"]; string address = (string)obj["address"]; double longitude = (double)obj["longitude"]; double latitude = (double)obj["latitude"]; int workState = (int)obj["workState"]; string state = GetColor(workState); double lo = Longindex(longitude); double la = Latitude(latitude); Console.WriteLine(name); Sites.Add(new Site() { Name = name, Id = id, Longitude = lo, Latitude = la, Color = state, Address = address, WorkState = workState }); catch (Exception ex) Console.WriteLine(ex.Message); Console.WriteLine(ex);
欢迎关注博客主页:https://blog.csdn.net/u013411339 欢迎点赞、收藏、留言 ,欢迎留言交流!本文由【王知无】原创,首发于 CSDN博客!本文首发CSDN论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)》的面试部分补充。 硬刚大数据系列文章链接: 2021年从零到大数据专家的学习指南(全面升级版) 2021年从零到大数据专家之Hadoop/HDFS/Yarn篇 2021.
今天请求接口直接调了以前写好的方法,结果报了(405)不支持方法的错误,一看是GET写成POST了,改成GET之后,又报了无法发送具有此谓词类型内容正文错误的错误 原来之前的方法里面有GetRequestStream(), GET请求并不支持它。 把GetRequestStream()和相应的代码注释掉就OK了 // Stream outStream = myRequest...
httpwebrequest 用GET方法时报无法发送具有此谓词类型内容正文 如下一段小程序,运行结果报无法发送具有此谓词类型内容正文的错误,其实原因很简单,因为用的是GET的方式进行提交,而GetRequestStream()是用来在post提交的时候写post的内容的流,GET是不能有附加内容的,所以当然会报这个错。 HttpWebRequest r = (HttpWe...
在用vs的NuGet工具安装Aliyun OSS SDK时,如果版本选择错了,当调用部分API时,例如ListBuckets()、ListObjects()等 会提示异常:无法发送具有此谓词类型内容正文。 卸载Aliyun.OSS.SDK.NetCore,安装Aliyun.OSS.SDK即可 这样,就能正常访问接口了。 点赞、收藏、+关注哦~
近期项目中需要通过代码调用DB2存储过程,报 [42884] [IBM][DB2/NT64] SQL0440N错误,搜索了很多解决方案都是无效的,后来查看SQLState说明,才找到报错的真正原因。 现把完整的SQLCODE和SQLState错误信息和相关解释作以下说明,以供参考,对DB2错误自行找出原因 。 sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098.
PostgreSQL 提供了丰富的数据类型。用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型。PostgreSQL 的数据类型被分为四种,分别是基本数据类型、复合数据类型、域和伪类型。 ​ 基本数据类型是数据库内置的数据类型,包括integer、char、varchar等数据类型。表6-1列出了`PostgreSQL提供的所有基本数据类型。复合数据类型是用户自己定义的,使用CREATE TYPE命令就能创建一个复合数据类型。域是一种特殊的基本数据类型,它由基本数据类型加上一个约束条
在访问网络的时候,我使用了webclient,为了使webclient带cookies我重写了相应的函数 protected override WebRequest GetWebRequest(Uri address) //hwr = (HttpWebRequest)base.GetWebRequest(new Uri(url));
如下一段小程序,运行结果报无法发送具有此谓词类型内容正文的错误,其实原因很简单,因为用的是GET的方式进行提交,而GetRequestStream()是用来在post提交的时候写post的内容的流,GET是不能有附加内容的,所以当然会报这个错。 HttpWebRequest r = (HttpWebRequest)WebRequest.Create(URL);r.Method = 'GET';...
原因是:你采用了post方式发送请求,可是在url后面带了参数 如:http://www.baidu.com?test=qq&ppk=dsafads;jfk 若是你的url类似上面的格式,则用post请求就会报错, 1:get请求 WebClient client = new WebClient(); String jsonResult = client.DownloadSt
执行下面一段代码时,捕捉到异常:ProtocolViolationException HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.Method = "get"; byte[] requestByte...