当前位置: 首页 > wzjs >正文

让你的静态网站 做后台做平面设计兼职的网站

让你的静态网站 做后台,做平面设计兼职的网站,互联网行业五行属什么,帮忙注册公司HttpClient 使用请求数据 0、初始化及全局设置 //初始化:必须先执行一次 #!import ./ini.ipynb1、使用url 传参 参数放在Url里,形如:http://www.baidu.com?namezhangsan&age18, GET、Head请求用的比较多。优点是简单、方便&#xff0…

HttpClient 使用请求数据

0、初始化及全局设置

//初始化:必须先执行一次
#!import ./ini.ipynb

1、使用url 传参

参数放在Url里,形如:http://www.baidu.com?name=zhangsan&age=18, GET、Head请求用的比较多。优点是简单、方便,能被浏览器缓存;缺点是参数长度等限制较多,数据暴露url中,可能比较长。

/**URL传参:适合简单数据类型
*/
{//获取响应字符串{var response = await SharedClient.GetAsync("api/Normal/GetAccount?id=1");response.EnsureSuccessStatusCode();var content = await response.Content.ReadAsStringAsync();Console.WriteLine(content);}//获取响应对象{var response = await SharedClient.GetAsync("api/Normal/GetAccount?id=1");response.EnsureSuccessStatusCode();var result = await response.Content.ReadFromJsonAsync<BaseResult<Account>>();result.Display();}//直接获取响应对象{var result = await SharedClient.GetFromJsonAsync<BaseResult<Account>>("api/Normal/GetAccount?id=1");result.Display();}}

2、使用路由传参

路由参数,指参数使为URL的一部分,一般由后端API设定好,前端按规定使用即可。例如:后端指定/user/:id,前端使用/user/1,此时id为路由参数。

/*
** 路由参数:参数是URL的一部分,由后端指定
*/
{//大括号:方便折叠、开成单独的作用域var response = await SharedClient.GetAsync("api/Normal/GetAccount/管理员01");//确定是成功的响应response.EnsureSuccessStatusCode();//获取响应内容var content = await response.Content.ReadAsStringAsync();//输出 Console.WriteLine(content);
}

3、使用请求头

把请求数据放入请求头中,传给后端。当然也可以传多个数据。不过,请求头中传数据限制比较多,一般只传简单的数据:比如jwt token 。

/*
* 请求头: 值必须是字符串,如果有中文等需进行编码
*/
{//设置请求头//中文先编码,服务端接收后要解码var codedName = System.Net.WebUtility.UrlEncode("管理员01");//SharedClient是共用的,所以不能多次添加,先移除旧值if (SharedClient.DefaultRequestHeaders.Contains("name")){SharedClient.DefaultRequestHeaders.Remove("name");}//添加请求头SharedClient.DefaultRequestHeaders.Add("name", codedName);var response = await SharedClient.GetAsync("api/Normal/GetAccountFromHeader");//确定是成功的响应response.EnsureSuccessStatusCode();//获取响应内容var content = await response.Content.ReadAsStringAsync();//输出 Console.WriteLine(content);
}

4、使用请求体

把数据放在请求体中,发送到服务端。可以是简单的字符串,也可以是二进制数据(上传文件)、form表单项、编码过的form表单项、json、流式数据等形式,甚至是这个类型的组合。

说下个人的几点理解:
1、不管哪种请求体数据,都是放在请求体中,以二进制形式通过网络发往服务器,由服务器接收使用。客户端发送请求数据需要与服务端接收相配合;
2、客户端通过Content-Typey请求头设置,告诉服务端请求发送的是哪种类型的数据;服务端根据Content-Type来识别、解析请求数据。常见的类型有:multipart/form-data、application/x-www-form-urlencoded、application/json、text/plain等;
3、ASP.NET Core中,默认的请求体类型是FormUrlEncodedContent,所以默认情况下,客户端发送的请求数据是form表单项; asp.net 框架对json格式数据和表单数据进行了特殊处理,支持参数绑定等,可以使用[FromBody]特性,将请求数据绑定到对应的模型上。但普通的文本类型等不支持绑定等功能,需要从请求体中获取原始数据,自行处理。
4、一次可发送多种格式数据,由统一的分隔符分隔。服务端可以从请求头[] Content-Type: multipart/mixed; boundary=“d2e38916-df08-4fec-a40e-3e5179736f32”]拿到分隔符,然后根据分隔符将数据拆分出来。

HttpClient 中,请求体也分为这几种(常见的)类型:

  1. MultipartFormDataContent
  2. FormUrlEncodedContent
  3. JsonContent
  4. StringContent
  5. ByteArrayContent
  6. StreamContent
  7. MultipartContent

MultipartFormDataContent :Form表单

Form表单,提交数据方式之一。

/*
*   Form表单,提交数据。一般为Put或Post提交。
*/
{// 创建一个 MultipartFormDataContent 对象, 用来存入 Form表单 各项及值var formContent = new MultipartFormDataContent();// 添加表单字段formContent.Add(new StringContent("1"), "id");formContent.Add(new StringContent("管理员01"), "name");// 发送POST请求var response = await SharedClient.PostAsync("api/AdvancedGet/PostFormData", formContent);// 读取响应内容string responseString = await response.Content.ReadAsStringAsync();Console.WriteLine(responseString);
}

FormUrlEncodedContent :Form表单 asp.net core 默认接收方式

/*FormUrlEncoded 提交数据 
*/
{//设置数据项var urlEncodedData = new List<KeyValuePair<string,string>>(){new KeyValuePair<string,string>(key:"id",value:"1"),new KeyValuePair<string,string>(key:"name",value:"管理员01"),};//FormUrlEncodedContent对象var formContent = new FormUrlEncodedContent(urlEncodedData);// 发送POST请求var response = await SharedClient.PostAsync("api/AdvancedGet/PostFormData", formContent);// 读取响应内容string responseString = await response.Content.ReadAsStringAsync();Console.WriteLine(responseString);
}

StringContent 普通文本(也包括很多格式,甚至是自定义格式。要和服务器配合)

/*普通文本方式提交数据
*/
{var requestContent = new StringContent("我是请求体第一段内容", Encoding.UTF8, "text/plain");var response = await SharedClient.PostAsync("/api/AdvancedPost/TextData", requestContent);var content = await response.Content.ReadAsStringAsync();Console.WriteLine(content);
}
http://www.dtcms.com/wzjs/823812.html

相关文章:

  • 上海远东建筑设计院成都自然排名优化
  • 家纺营销型网站百胜招聘 网站开发
  • 做机器人的网站wordpress 显示全部文章
  • 网站建设中应该注意什么自建论坛
  • wordpress怎样连接数据库连接网站优化吧
  • 网站开发合同模板企业搭建什么样的平台
  • 网站制作怎么报价单普通人学python有意义吗
  • 公司网站建设维护的岗位wordpress 本地建站教程
  • 我要自学网官方网站杭州市建设住房保障局网站
  • 做个商城网站多少钱宁波做网站的大公司有哪些
  • 安阳网站建设_wordpress上传中文图片
  • 免费html模板素材网站青浦做网站的公司
  • 惠州网站建设找哪个公司笑话网站html模板
  • 淘宝网站建设不允许wordpress 浏览次数
  • 做系统前的浏览网站能找回吗网站标题关键词怎么做
  • 北京建设银行网站田村lnmp wordpress 502
  • 浙江建设局图审网站高端网站建设费用
  • 如何查询注册过的网站网站建设代理商
  • 吉林电商网站建设公司电话上海牛巨仁seo
  • 河南映天建设网站河南平价的seo整站优化定制
  • 东莞搜索seo网站关键词优化免费网站推广在线观看
  • 1_ 掌握网站开发的基本流程 要求:熟悉网站开发与设计的基本流程.软件项目管理案例教程第四版
  • 网站怎么申请微博登录手机制作网站软件
  • 杭州网站制作建设网店怎么开店注册
  • 深圳自适应网站常用的网络营销方法及效果
  • wordpress 文件服务深圳网站推广优化培训
  • 网站的站外推广手段微营销平台有哪些
  • 营口建设工程信息网站往国外卖货的平台
  • 请打开123720的网站百度本地手机网站建设
  • 自己做网站需要买哪些自己给自己网站做seo