restsharp 组件调用返回 gbk 编码的api,中文乱码解决方法。(restsharp response 中文乱码 gbk)
最近要调一个restful风格的api
用了 一个开源第三方组件,组件还是蛮好用的,
支持直接按参数定义实体类,然后发起请求之前直接 addobject 的方式就把请求参数给添加进去了,
解码的时候可以直接返回得到实体类,调用代码示例如下:
感觉够简便。这样一来我调用restful风格的api,只要按对方参数去组实体类,再按对方返回结果组实体类,就可以正确得到结果了。
但是后来发现中文乱码了,第一反应是,应该是我没设置解析结果时候用的编码,但是打开源代码翻看了一下,没找到哪里设置。。。。不知道是不是姿势不对?
跑去github看issue,发现也有人说。跑去stackoverflow搜了一下,有人和我问题一样。感觉像是个bug了,
做了如下修改,没提交到git,将就着对着改一下就可以用。
第一步:修改 HttpResponse.cs ,如图:
一般的通过这样修改,应该就可以了。
但是,我的还是不行,看对方的http请求返回参数
ContentEncoding没有值。
所以我找到发起请求的地方,
他原来那个ContentEncoding直接拿的是返回的ContentEncoding的值,我判断了一下如果为空,则去拿CharacterSet的值了。
重新编译,测试,可以了。中文不会乱码了