winform 调用接口返回HTML 中文乱码

101 阅读1分钟

nuget中引入支持GBK编码的包 System.Text.Encoding.CodePages

Netcore不识别GBK编码格式,所以Encoding.GetEncoding("GBK")会报错

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

GET请求

    /// <summary>
    /// Get 获取数据
    /// </summary>
    /// <param name="Url">网址</param>
    /// <returns></returns>
    public static object GetHelperAsync(string Url)
    {
        var client = new RestClient(Url);
        var request = new RestRequest(Method.GET);
        //我请求的网站请求头需要一些参数
        request.AddHeader("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3");
        IRestResponse response = client.Execute(request);
        return response.Content;     
    }
    

POST 请求

    /// <summary>
    /// Get 获取数据
    /// </summary>
    /// <param name="Url">网址</param>
    /// <returns></returns>
    public static object GetHelperAsync(string Url)
    {
        var client = new RestClient(Url);
        var request = new RestRequest(Method.GET);
        //我请求的网站请求头需要一些参数
        request.AddHeader("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3");
        IRestResponse response = client.Execute(request);
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
        var data=HttpUtility.UrlDecode(response.RawBytes, Encoding.GetEncoding("gbk"));
        return data;                    
    }