admin

为Restsharp添加扩展方法解决RestResponse返回中文乱码问题
前言https://github.com/restsharp/RestSharpRestSharp是我一直都在使用...
扫描右侧二维码阅读全文
08
2019/02

为Restsharp添加扩展方法解决RestResponse返回中文乱码问题

前言

https://github.com/restsharp/RestSharp
RestSharp是我一直都在使用的一个HTTP访问组件,用它来访问传统的GETPOST和Restful风格的API都是极其方便的,最近在使用的时候发现对于中文的支持并不是太好,即使设置了RestClient的Encoding属性对于Response的访问内容也不能正常返回。后来查看其源码发现返回的内容编码是指定死的UTF-8不能够自动识别手动指定后也不能起作用。

解决方案

在正常的Execute后返回的IRestResponse中有个属性为RawBytes,意指返回的内容的字节集,拿到字节集后我们就可以通过编码转换成我们指定的文本内容。

/// <summary>
/// 获取指定编码的返回文本
/// </summary>
/// <param name="this"></param>
/// <param name="encode"></param>
/// <returns></returns>
public static string GetHtml(this IRestResponse @this, string encode = "GBK")
{
    var result = Encoding.GetEncoding(encode).GetString(@this.RawBytes);
    return result;
}
Last modification:February 17th, 2019 at 02:20 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment