踩坑记录

一  返回值无法显示中文的问题:

但是,如果先将其转成json,再将其转成字符串,就能显示中文了。

Newtonsoft.Json.Linq.JObject jo = Newtonsoft.Json.Linq.JObject.Parse(response.Content);

jo.ToString();

全网都没找到靠谱的,这个是最简单的方式。

二  报错信息:无法发送具有此谓词类型的内容正文

这个其实就是Get的时候,不应该添加这个,AddHeader("Content-Type", $"{content_type}; charset=UTF-8"),这个是Post才会用到的。

代码封装

RestSharp之前一直使用的是老版本的,直接添加的dll,其实RestSharp一直再更新换代,使用Nuget可以安装最新的版本。

我们可以通过它的官方文档,查看它的使用方式:

RestSharp Next (v107) | RestSharphttps://restsharp.dev/v107/#restsharp-v107这里提到一个,生命周期的问题:

RestClient lifecycle

Do not instantiate RestClient for each HTTP call. RestSharp creates a new instance of HttpClient internally, and you will get lots of hanging connections, and eventually exhaust the connection pool.

If you use a dependency-injection container, register your API client as a singleton.

就是说,不要每次调用的时候都创建一个client,这样会耗尽连接池。

好了,上代码:

internal class RestSharpRequestHandler{private RestClient client;private RestRequest request;public RestSharpRequestHandler(){var options = new RestClientOptions(){ThrowOnAnyError = true,  //设置不然不会报异常MaxTimeout = 1000};client = new RestClient(options);}public string Post(string url, string str, string content_type = "application/json; charset=UTF-8"){try{this.request = new RestRequest(url).AddHeader("Content-Type", $"{content_type}; charset=UTF-8").AddStringBody(str,DataFormat.Json);var response = client.Post(request);Newtonsoft.Json.Linq.JObject jo = Newtonsoft.Json.Linq.JObject.Parse(response.Content);return jo.ToString();}catch (Exception ex){return "连接服务器出错:\r\n" + ex.Message;}}public string Get(string url, string content_type = "application/json; charset=UTF-8"){try{request = new RestRequest(url);var response = client.Get(request);JObject jo = JObject.Parse(response.Content);return jo.ToString();}catch (Exception ex){return "连接服务器出错:\r\n" + ex.Message;}}}

【C#】RestSharp踩坑日记相关推荐

  1. 全志哪吒D1-H Tina Linux Ubuntu 22.04入门踩坑日记

    哪吒D1-H Tina Linux入门踩坑日记 系统环境 源码编译 mklibs-readelf的C++标准问题 m4的SIGSTKSZ问题 libfakeroot的_STAT_VER问题 read_ ...

  2. Win11 + Ubuntu18.04 双系统踩坑日记

    Win11 + Ubuntu18.04 双系统踩坑日记 前言 准备工作 硬件配置 镜像下载 Win11镜像下载 Ubuntu镜像下载 启动盘准备 Win11启动盘 Ubuntu启动盘 Win11安装 ...

  3. 【Flutter混合开发踩坑日记之‘applicationVariants‘ for extension ‘android‘】

    Flutter混合开发踩坑日记之'applicationVariants' for extension 'android' 正文 坑一:Could not get unknown property ' ...

  4. Swarm-BZZ踩坑日记之 如何让METMASK小狐狸显示gbzz

    刚入门bzz的新手还不知道小狐狸是什么的请移步上一章节:Swarm-BZZ踩坑日记之 如何在METMASK小狐狸导入节点地址 在浏览器安装好小狐狸,并添加自己的钱包地址后 会发现只显示ETH,并不显示 ...

  5. ReactNative 在丁香医生项目中引入的踩坑日记

    ReactNative 在丁香医生项目中引入的踩坑日记 this没绑定到函数导致空指针 参考 React-Native 踩坑第二弹-undefined is not a function(evalua ...

  6. springboot踩坑日记—nacos: Error watching Nacos Service change

    springboot踩坑日记-nacos: Error watching Nacos Service change Spring Boot :: (v2.1.5.RELEASE) 错误代码: 07-3 ...

  7. 微信小程序踩坑日记-微信小程序首次加载样式错乱问题

    微信小程序踩坑日记-微信小程序首次加载样式错乱问题 在实际开发项目中,遇到了个棘手的问题,就是在某些因素下,进入小程序发现有些样式发生偏移.错乱等问题 问题原因:-未知(估计是组件的问题) ↓ 解决办 ...

  8. c++字符串操作之std::ostringstream踩坑日记

    c++字符串操作之std::ostringstream踩坑日记 在开发过程中经常会遇到字符串操作,而std::string又没有format操作,这就很难受了. 于是我找到了std::ostrings ...

  9. Antd Pro V4 protable详解(ps:踩坑日记)

    Antd Pro V4 protable详解(ps:踩坑日记) 写在前面: 在这篇文章中,你会了解到: protable 中的cloumns属性详解 protable数据加载和处理(两种方法,直接使用 ...

  10. midjourney指令笔记+踩坑日记+gpt论文润色指令

    跟人拼团入手了midjourney,长期记录更新. midjourney指令笔记+踩坑日记 指令笔记 踩坑日记 GPT论文润色指令 指令一 指令二 指令三 指令四 指令五 指令笔记 关键词参考网址:p ...

最新文章

  1. 怎樣制作线段动画_PPT动画还能这么做?我擦!动画源文件免费送你
  2. 个人怎么发表期刊具体细节
  3. Java 编程技巧之数据结构
  4. 记录rewrite url我之前不知道的地方
  5. android usb设备节点_(五)树莓派3开发环境搭建——6.树莓派USB与tty串口号绑定...
  6. 浙江大学PAT上机题解析之1009. 说反话 (20)
  7. 读取SD卡里面的BMP文件 显示到TFT上
  8. python keyboard模块_python3 安装 pykeyboard 模拟浏览器
  9. es6 Symbol概述
  10. mysql的join语句使用_MySQL开发技巧——如何正确使用Join语句
  11. 掌握这个套路,让你的可视化大屏万里挑一
  12. matlab利用工作区的变量画图,在使用MATLAB“绘图”选项卡中的命令按钮绘图之前,需要( )。 答案:在工作区中选择绘图变量...
  13. R 语言的安装(详细教程)
  14. c语言编辑游戏时用哪个软件,我想用C语言编写一个小型游戏,使用什么软件
  15. 前端开发必备之MDN文档
  16. h5网站模板_超全超实用的80个模板网站,我全部整理在这里了
  17. Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64
  18. 大类资产配置的基本方法
  19. (迁)rsync:基本命令和用法
  20. 如何从官网下载STM32固件库

热门文章

  1. mysql 三种循环语句_MySQL循环语句
  2. 开源网店系统Javashop 发布3.0beta版
  3. 数学建模笔记(一):数学建模一般步骤
  4. dsp31段最佳调音图_均衡器如何使用_31段均衡器调整方法
  5. 幼儿园门口摆个考勤机 家长接孩子得打卡
  6. python图片保存pdf_python将图像保存为pdf及图片
  7. s081-2020 Lab4 traps
  8. HTML5移动开发的10大移动APP开发框架
  9. VMware15 Pro激活密钥
  10. Net(C#)高级程序员面试题