长春网络公司做网站云南住房和城乡建设局网站

web/2025/9/30 22:56:22/文章来源:
长春网络公司做网站,云南住房和城乡建设局网站,宁夏网络公司排名,常州小程序开发报价组件开始设计是针对以接口的方式来定义HTTP/HTTPS访问#xff0c;虽然基于接口来操作有很大的便利性#xff0c;但定义起来就比较麻烦了。所以在1.5版本中实现了一个HttpClient类来简化调用。HttpClient 该类支持HTTP的GET,POST,DELETE和PUT操作#xff0c;通过这几个…         组件开始设计是针对以接口的方式来定义HTTP/HTTPS访问虽然基于接口来操作有很大的便利性但定义起来就比较麻烦了。所以在1.5版本中实现了一个HttpClient类来简化调用。HttpClient        该类支持HTTP的GET,POST,DELETE和PUT操作通过这几个方法可以调用HTTP请求包括application/json和上传文件等。 public class HttpClientTwhere T : IBodyFormater, new(){public HttpClient(string host){mHost HttpHost.GetHttpHost(host);}private HttpHost mHost;private Dictionarystring, string mQueryString new Dictionarystring, string(StringComparer.OrdinalIgnoreCase);private Dictionarystring, string mHeader new Dictionarystring, string(StringComparer.OrdinalIgnoreCase);private object mDataObject;private Dictionarystring, object mDataMap new Dictionarystring, object(StringComparer.OrdinalIgnoreCase);public HttpClientT Accept(string value){mHeader[accept] value;return this;}public HttpClientT Authorization(string value){mHeader[authorization] value;return this;}public HttpClientT SetHeader(string name, string value){mHeader[name] value;return this;}public HttpClientT AddQueryString(string name, object value){mQueryString[name] value.ToString();return this;}public HttpClientT SetBody(object data){mDataObject data;return this;}public HttpClientT AddBodyFile(string name, string file){AddBodyField(name, new FileInfo(file));return this;}public HttpClientT AddBodyFile(string name, UploadFile file){AddBodyField(name, file);return this;}public HttpClientT AddBodyField(string name, object data){mDataMap[name] data;return this;}public async TaskRESULT GetRESULT(string url){var response await Get(url, typeof(RESULT));return response.GetResultRESULT();}public TaskResponse Get(string url, Type bodyType null){var request mHost.Get(url, mHeader, mQueryString, new T(), bodyType);return request.Execute();}public async TaskRESULT PostRESULT(string url){var response await Post(url, typeof(RESULT));return response.GetResultRESULT();}public TaskResponse Post(string url, Type bodyType null){var request mHost.Post(url, mHeader, mQueryString, mDataObject null ? mDataMap : mDataObject, new T(), bodyType);return request.Execute();}public async TaskRESULT PutRESULT(string url){var response await Put(url, typeof(RESULT));return response.GetResultRESULT();}public TaskResponse Put(string url, Type bodyType null){var request mHost.Put(url, mHeader, mQueryString, mDataObject null ? mDataMap : mDataObject, new T(), bodyType);return request.Execute();}public async TaskRESULT DeleteRESULT(string url){var response await Delete(url, typeof(RESULT));return response.GetResultRESULT();}public TaskResponse Delete(string url, Type bodyType null){var request mHost.Delete(url, mHeader, mQueryString, new T(), bodyType);return request.Execute();}} 以上是类的完全整代码实现代码量比较少归功于组件在基础上的基础封装。为了更方便使用组件在这基础上扩展了几种常用格式调用Client类。    //二进制流处理下载文件public class HttpBinaryClient : HttpClientBinaryFormater{public HttpBinaryClient(string host) : base(host){}}//常用的Form url encoding编码,对应application/x-www-form-urlencodedpublic class HttpFormUrlClient : HttpClientFormUrlFormater{public HttpFormUrlClient(string host) : base(host){}}//用于json请求响应对应application/jsonpublic class HttpJsonClient : HttpClientJsonFormater{public HttpJsonClient(string host) : base(host){}}//等价于multipart/form-data常用于上传文件public class HttpFormDataClient : HttpClientFromDataFormater{public HttpFormDataClient(string host) : base(host){}} 可以根据自己需要来使用不同的Client。自定义Formater        有很多时候请求和响应的内容不一致这个时候就要用到自定义Formater了组件支持这样的扩展只需要FormaterAttribute对象重写相关方法即可。以下是BinaryFormater的扩展 public class BinaryFormater : FormaterAttribute{public override string ContentType application/octet-stream;public override object Deserialization(Response response, PipeStream stream, Type type, int length){var result System.Buffers.ArrayPoolbyte.Shared.Rent(length);stream.Read(result, 0, length);return new ArraySegmentByte(result, 0, length);}public override void Serialization(Request request, object data, PipeStream stream){if (data is Byte[] buffer){stream.Write(buffer, 0, buffer.Length);}else if (data is ArraySegmentbyte array){stream.Write(array.Array, array.Offset, array.Count);}else{throw new Exception(Commit data must be byte[] or ArraySegmentbyte);}}} 为了方便也可以继承已经实现的重写单个方法。使用         在使用之前需要引用BeetleX.Http.Clients引用后即可使用组件来访问HTTP/HTTPS服务。 [Fact]public async Task HttpBin_Delete(){HttpJsonClient client new HttpJsonClient(http://httpbin.org);var result await client.Delete(/delete);Assert.Equal(null, result.Exception);}[Fact]public async Task HttpBin_Get(){HttpJsonClient client new HttpJsonClient(http://httpbin.org);var result await client.Get(/get);Assert.Equal(null, result.Exception);}[Fact]public async Task HttpBin_Post(){HttpJsonClient client new HttpJsonClient(http://httpbin.org);var date DateTime.Now;client.SetBody(date);var result await client.Post(/post);JToken rdata  result.GetResultJToken()[data];}[Fact]public async Task HttpBin_Put(){HttpJsonClient client new HttpJsonClient(http://httpbin.org);Employee emp DataHelper.Defalut.Employees[0];client.SetBody(emp);var result await client.Post(/post);JToken rdata  result.GetResultJToken()[data];}[Fact]public async Task GetImage(){HttpClientBinaryFormater client new HttpClientBinaryFormater(http://httpbin.org);var result await client.Get(/image);var data result.GetResultArraySegmentbyte();using (System.IO.Stream write System.IO.File.Create(test.jpg)){write.Write(data.Array, data.Offset, data.Count);write.Flush();}} 以上是组件的一些用例应用代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金华企业网站建设网站建设重要意义

问题描述: 想在不同目录下导入根目录的包,直接写会报错。如下边object_detect.py在function文件夹下,导入包默认在这个文件下,但我想导入根目录models和utils下的包 解决方法: 将根目录设置为源代码根目录&#xff0…

专业网站建设公司哪里济南兴田德润什么活动哪些做网站的公司比较好

1.安装教程激活 输入的激活网址: http://idea.imsxm.com/ 2.汉化教程 软件适用于:webstorm2017.2以及以上,如有需要可直接加本人QQ 1940694428。 转载于:https://www.cnblogs.com/cisum/p/7919712.html

北京网站制作公司兴田德润可以不常州视频剪辑培训机构

公章是公司处理内外部事务的印鉴,公司对外的正式信函、文件、报告使用公章,盖了公章的文件具有法律效力。公章由公司的法定代表人执掌,法定代表人如果把法定代表人章与公章一同使用就代表公司行为。 随着社会数字化转型,电子印章及…

企业建设网站目的是什么意思黄冈免费网站推广平台汇总

css实现自定义按钮的样式实际上很早就有了,只是会用的人不是很多,里面涉及到了最基础的css写法,在火狐中按钮还是会显示出来,这时需要将i标签的背景设置为白色,同时z-index设置比input高一些,这样才可以把按…

网站管理工作流程简单的网页设计主题

目录 && --- 逻辑与操作符 || --- 逻辑或操作符 && --- 逻辑与操作符 逻辑与操作符有并且的意思,一般用于判断语句中 逻辑与操作符运行规则是都要为真,才会继续执行或计算 360笔试题: 有关前置(--),后置(-…

腾讯广告投放端提供的建站工具有三亚房地产网站制作

java ee的小程序如果我不喜欢夏天的一件事,那就是事实是没有太多要分享或谈论的新闻。 谁决定将Java Day Tokyo置于今年的这个无聊的时间里,做得很好,并给了我一个写关于新的和即将到来的Java EE 8规范的博客帖子的机会,其中丰富了…

邢台移动网站建设价格wordpress改变友情链接顺序

全世界只有3.14 % 的人关注了青少年数学之旅【1】【2】【3】【4】【5】【6】【7】【8】【9】

科技软件公司网站模板企业网站开发与设计论文

首先转换pytorch->onnx->param模型,这个过程可以查资料步骤有点多,参考blog.51cto.com/u_15660370/6408303,这里重点讲解转换后部署。 测试环境: ubuntu18.04 opencv3.4.4(编译过程省略,参考我其他博客) 安装…

网站设计 模板外贸企业网页制作

2024年6月1日上午,横店影视华翰传媒集团携手腾烨影视隆、明艺影视重举办了横店影视基地的开业庆典。这一盛事不仅标志着华翰传媒集团在影视行业发展的重要里程碑,更彰显了其深耕影视产业、致力于打造高质量影视内容的决心与目标。 活动盛况空前&#xff…

网站建设常州青之峰百度网页版下载

一直以来听的多了,什么UDP广播之类的,不过自己一直没有试验过,这次闲来无聊,于是测试了一下。网上说的其实并不是非常的正确,流传着不少的错误言论,这次自己动手测试了一下,没想到比我想象中的还…

聊城专业建wap网站网站开发教程

Java中的面向对象设计原则与实践 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 引言 面向对象设计原则是软件工程中的重要概念,它们指导着我们如…

网站建设项目报告书网站建设湖南岚鸿建设

Python常见基础数据结构 字符串字符串的构造字符串是一种序列正向索引负向索引有限切片无限切片查询方法压缩方法替换方法格式化插入分割方法 列表列表构造列表同样属于序列列表的元素增加列表其他方法 元组字典字典的构造字典不属于序列字典可变 字符串 字符串的构造 • 单引…

网站设计需求说明书外国网站接单做翻译

文章目录 一、TCP/IP1.1、TCP/IP概念TCP/IP是什么TCP/IP的作用TCP/IP的特点TCP/IP的工作原理 1.2、TCP/IP网络发展史1.3、OSI网络模型1.4、TCP/IP网络模型1.5、linux中配置网络网络配置文件位置DNS配置文件主机名配置文件常用网络查看命令 1.6、windows中配置网络CMD中网络常用…

聊城定制网站建设公司网站禁止访问怎么解除

HDU6223 - Infinite Fraction Path 做法1&#xff1a;枚举每个串取最大值&#xff0c;只用判断前20位&#xff0c;如果前20位都相同&#xff0c;可以认定两个串相同。因为很容易进入循环节&#xff0c;且循环节不太大。 #include <bits/stdc.h> #define pb push_back typ…

aspcms手机网站怎么做西安华为公司

推荐系统在现代应用中占据了重要地位&#xff0c;尤其在电影、音乐等个性化内容推荐中广泛使用。本文将介绍如何使用数据预处理、特征工程以及多种推荐算法&#xff08;包括协同过滤、基于内容的推荐、混合推荐等&#xff09;来实现电影推荐系统。通过Pandas、Scikit-learn、Te…

域名绑定空间后 一般多久能打开网站广州微信网站建设市场

当移动端使用fixed定位自定义nav栏时&#xff0c;安卓端正常固定在可视窗顶部&#xff0c;但是ios端当有input输入&#xff0c;弹出软键盘时&#xff0c;会将nav顶出可视区&#xff0c;因为在ios上&#xff0c;不是相对于浏览器窗口定位的&#xff0c;而是相对于最近的可滚动区…

建站仅向商家提供技术服务长春网站开发报价

1 传统的线性回归 机器学习笔记&#xff1a;线性回归_线性回归的读书笔记-CSDN博客 最优的β为&#xff1a; 2 地理加权回归&#xff08;GWR&#xff09; 2.1 模型概述 地理加权回归&#xff08;Geographically Weighted Regression&#xff0c;GWR&#xff09;是传统回归分…

化妆品企业网站源码一个网站需要哪些技术

一、请解释Vue中的双向数据绑定是什么&#xff1f; Vue中的双向数据绑定是一种机制&#xff0c;它使得数据的变化能够自动反映在用户界面上&#xff0c;同时用户界面中的输入也能够自动更新数据。这种机制实现了数据层&#xff08;Model&#xff09;和视图层&#xff08;View&…

c 做网站好嘛镇江网站建设教程

开发工具与关键技术&#xff1a;Visual Studio、MVC 作者&#xff1a;幻奏 撰写时间&#xff1a;2019.6.13关于页面数据残留的问题&#xff0c;我前几天就遇到了&#xff0c;刚开始的时候我写完那个页面是不知道它有毛病的&#xff0c;后来我才发现了它居然有一个小问题。 先来…

网站换稳定服务器淘宝客的网站是怎么做的

备注&#xff1a;这篇文章是我在2023年年初在自己的网站上写的&#xff0c;最近在迁移技术文章&#xff0c;我感觉这个也是和咱程序员相关&#xff0c;所以今天就决定把它迁移过来。 .......................................................................分割线..........…